You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.5 KiB
60 lines
1.5 KiB
// ------------------------------------------------------------------------
|
|
// Project active2
|
|
// Active Thing (activething.com) git.activething.com/go
|
|
//
|
|
// File name string.go
|
|
// Created by DEV
|
|
// Modified 29/03/2024
|
|
//
|
|
// Copyright 2024 activething.com
|
|
// ------------------------------------------------------------------------
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
// ------------------------------------------------------------------------
|
|
|
|
package astrings
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
|
|
|
|
|
|
func Split(source string, size int) []string {
|
|
var ls []string
|
|
for i := 0; i < len(source); i += size {
|
|
// Calcula el tamaño máximo para el fragmento actual
|
|
re := len(source) - i
|
|
fs := min(size, re)
|
|
ln := source[i : i+fs]
|
|
ls = append(ls, ln)
|
|
}
|
|
return ls
|
|
}
|
|
|
|
func Pad(source string, size int, chr byte, truncate bool) string {
|
|
cn := size - len(source)
|
|
if cn == 0 {
|
|
return source
|
|
}
|
|
if cn < 0 {
|
|
if truncate {
|
|
return source[:size]
|
|
}
|
|
return source
|
|
}
|
|
return source + strings.Repeat(string(chr),cn)
|
|
}
|
|
|
|
|