Browse Source

Ein paar Ergänzungen infolge PLC-Disconnect und AutoNesting124

test
Klaus Wendel 4 years ago
parent
commit
06e8b815b4
  1. BIN
      cli/cli
  2. BIN
      cli/cli.test
  3. 80
      ebkTools.go
  4. 6
      maaf/doc.go
  5. 9
      maaf/maaf.go

BIN
cli/cli

Binary file not shown.

BIN
cli/cli.test

Binary file not shown.

80
ebkTools.go

@ -0,0 +1,80 @@
package ebkTools
import (
"bytes"
"math"
"path"
"regexp"
"runtime"
"strconv"
"strings"
)
//Round rundet Zahlen
func Round(number float64, digits int8) float64 {
pow := math.Pow(10, float64(digits))
return math.Floor(number*pow+.5) / pow
}
//Concatstring verbindet zwei Strings mit größerer Performance als "+", prozeduales Verfahren
func Concatstring(args ...string) string {
var buffer bytes.Buffer
for _, v := range args {
buffer.WriteString(v)
}
return buffer.String()
}
//Join verbindet zwei Strings mit größerer Performance als "+", OOP-Verfahren
func (f *Concatablestring) Join(args ...string) string {
var buffer bytes.Buffer
buffer.WriteString(string(*f))
for _, v := range args {
buffer.WriteString(v)
}
return buffer.String()
}
//Concatablestring ist das Mutter-Objekt für die Join-Methode
type Concatablestring string
//String2args macht aus einem String ein Array, trennt am Trennzeichen, berücksichtigt aber mit einfachen und doppelten Anführungszeichen eingegrenzte Bereiche
func String2args(s string) (ss []string) {
s = regexp.MustCompile(`([\s\p{Zs}]{1,})|('[^']*')|(\"[^\"]*\")`).ReplaceAllString(s, "${0}💇") // Leerzeichen innerhalb von Anführungszeichen sollen nicht ersetzt werden!
s = regexp.MustCompile(`[\s\p{Zs}💇]{1,}💇`).ReplaceAllString(s, "💇") // Entferne alle Leerzeichen VOR dem 💇; auch doppelte 💇 sollen verschwinden.
s = strings.Trim(s, "💇")
ss = strings.Split(s, "💇") // Bereinige die Stringränder, insbesondere das Ende
for i := 0; i < len(ss); i++ { // Entferne die Anführungszeichen
ss[i] = strings.Trim(ss[i], `"'`)
//fmt.Println(ss[i])
}
//fmt.Println(ss)
return // übertrage den Input in ein Array
}
// Funktionen um einzelne Bits innerhalb eines 8-Byte-Blockes (wenn int = int64) zum manipulieren oder abzufragen
// SetBit setzt das Bit an Position pos im int-Variable n.
func SetBit(n int, pos uint) int {
n |= (1 << pos)
return n
}
// ClearBit löscht das Bit an Position pos im int-Variable n.
func ClearBit(n int, pos uint) int {
mask := ^(1 << pos)
n &= mask
return n
}
//HasBit prüft, ob das Bit an Position pos gesetzt ist
func HasBit(n int, pos uint) bool {
val := n & (1 << pos)
return (val > 0)
}
//CodeCaller liefert die Datei und Codezeile der aufrufenden Datei als String zurück
func CodeCaller() string {
_, file, line, _ := runtime.Caller(1) // 1, nicht 0; sonst kommt immer Zeile "ebkTools:XX" heraus!
return path.Base(file) + ":" + strconv.Itoa(line)
}

6
maaf/doc.go

@ -1,6 +0,0 @@
// maaf project doc.go
/*
maaf document
*/
package maaf

9
maaf/maaf.go

@ -1,9 +0,0 @@
// maaf project maaf.go
package maaf
import "math"
func Round(number float64, digits int8) float64 {
pow := math.Pow(10, float64(digits))
return math.Floor(number*pow+.5) / pow
}
Loading…
Cancel
Save