Ein paar Ergänzungen infolge PLC-Disconnect und AutoNesting124
parent
e76ad219bb
commit
06e8b815b4
Binary file not shown.
@ -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)
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
// maaf project doc.go
|
||||
|
||||
/*
|
||||
maaf document
|
||||
*/
|
||||
package maaf
|
@ -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…
Reference in New Issue