5 changed files with 80 additions and 15 deletions
Binary file not shown.
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