🍀 Das LibreOffice Forum braucht HEUTE Ihre Hilfe! 🍀
❤️ Spenden Sie jetzt und sichern Sie die Zukunft unseres LibreOffice-Forums ❤️
Ihre Spende hilft, die Community offen, werbefrei (bei Registrierung) und lebendig zu halten. Vielen lieben Dank!

🙏 DANKE >> << DANKE 🙏

>> Das LibreOffice-Forum lebt von Ihnen – und von vielen Experten, die freiwillig und kostenlos ihr Wissen teilen.<<
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

BASIC Textbearbeitungsfunktionen

Alles zur Programmierung im LibreOffice.
Antworten
lomich
Beiträge: 8
Registriert: Do 21. Mär 2013, 15:08

BASIC Textbearbeitungsfunktionen

Beitrag von lomich » Sa 1. Feb 2014, 22:40

Hallo zusammen,

nachdem ich mich den ganzen Abend mit Textbearbeitungsfunktionen herumschlage, hoffe ich auf Eure Hilfe.

Aus der Textkette "Haushaltsbuch_2014" soll "Haushaltsbuch_2013" werden.

1. Variante
Folgende Anweisung liefert formal das richtige Ergebnis, alledings steckt in der Zeichenkette ein nicht sichbares Zeichen.
sDocBefor = "Haushaltsbuch_" & STR( VAL( MID( "Haushaltsbuch_2014" , InStr( "Haushaltsbuch_2014" , "20" ) , 4 ) ) - 1 )
msgbox len( sDocBefor ) & " " & LEN("Haushaltsbuch_2014")
Ausgabe: 19 18

2. VAriante
Eine weitere Variante mit MID-Statement geht auch nicht!
mid("abc",1,2,"w") = Leer
Sinniger Weise gibt es zu MID-Statement kein Beispiel.

Zwei weiter Fragen:
1. Es gibt Text-Funktionen mit deutscher bzw. englischer Namen. Mein LO kennt nur die englischen? Gibt es Einstellungen?
2. Text verketten geht in der englischen Version nur mit Join und Array?

Schonmal Danke
micha

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2703
Registriert: Fr 10. Dez 2010, 10:01

Re: BASIC Textbearbeitungsfunktionen

Beitrag von karolus » So 2. Feb 2014, 00:26

Hallo

Ja die Textfunktionen in Basic sind recht armselig im Vergleich zu richtigen Programmiersprachen - aber in dem Fall tuts schon:

Code: Alles auswählen

newstr = replace( oldstring , "2013", "2014" )
;)

1.) In Calc gibts lokalisierte Funktionsnamen, die haben aber nicht mit den Runtime-Funktionen von Basic zu tun

2.) Text verketten geht mit join und man muss u.a. ein Array als Argument übergeben.

Karolus
Zuletzt geändert von karolus am So 2. Feb 2014, 00:28, insgesamt 1-mal geändert.
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

F3K Total
* LO-Experte *
Beiträge: 2515
Registriert: So 10. Apr 2011, 10:10

Re: BASIC Textbearbeitungsfunktionen

Beitrag von F3K Total » So 2. Feb 2014, 00:27

So?

Code: Alles auswählen

Sub S_HHB1
    Dim nYear as Integer
    sHHB = "Haushaltsbuch_2014"
    nYear = Right(sHHB,4)
    nNewYear = nYear - 1
    sHHBNew = MID(sHHB,1,len(sHHB)-4) & nNewYear
    msgbox sHHBNew
End Sub

Sub S_HHB2
    Dim nYear as Integer
    sHHB = "Haushaltsbuch_2014"
    nYear = Right(sHHB,4)
    nNewYear = nYear - 1
    sHHBNew = Replace(sHHB,nYear,nNewYear)
    msgbox sHHBNew
End Sub
R
Windows 11: AOO, LO Linux Mint: AOO, LO

lomich
Beiträge: 8
Registriert: Do 21. Mär 2013, 15:08

Re: BASIC Textbearbeitungsfunktionen

Beitrag von lomich » So 2. Feb 2014, 11:50

Hallo,

vielen Dank für Eure schnellen Tips. Hat sofort funktioniert.
Inzwischen habe ich das Problem gefunden.
Die STR-Funktion liefert am Anfang der Textkette ein nicht sichtbares Zeichen! :(

Gruß aus Dresden
micha


An alle, die das LibreOffice-Forum gern nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das laufende.
Einfach per Kreditkarte oder PayPal. Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.



❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten