mid() foppt mich

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

mid() foppt mich

Beitrag von clag »

Hallo Kenner und Könner,

wie der es Titel schon sagt foppt mich mid() gerade und ich bin gerade im Modus "ratlos"
ich kann zwar mit mid() den String verkürzen aber nichts einfügen !?

aus "Hallo World here I am" wird mit folgenden Ccode

Code: Alles auswählen

mytext = "Hallo World here I am"
mid(mytext, 6, 6, "")
"Hallo here I am" soweit so gut und wie erwartet.


Aber diese Verkürzung wieder rückgängig machen zB mit

Code: Alles auswählen

mytext = "Hallo here I am"
mid(mytext, 6, 1, " World")
geht nicht
statt des von mir erwarteten "Hallo World here I am"
gibt es ein wenig hilfreiches "Hallo here I am" zurück. :-x


ist das tatsächlich so? oder setze ich etwas falsches vorraus
Zuletzt geändert von clag am Di, 21.04.2015 09:36, insgesamt 1-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mid() foppt mich

Beitrag von Stephan »

Die Programmhilfe sagt bei MID u.A.:

"Ist der Längenparameter der Mid-Anweisung kleiner als die Länge des zu ersetzenden Textes, so wird der Text auf die angegebene Länge gekürzt."


was in Deinem Falle heißt das Du versuchst ein Leerzeichen durch den auf ein Zeichen gekürzten Ersetzungstext zu ersetzen, da der ERsetzungfstext jedoch mit einem Leerzeichen beginnt, ersetzt Du somit nur Leerzeichen gegen Leerzeichen.


Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mid() foppt mich

Beitrag von clag »

Hallo Stephan,

danke dir für die schnelle Antwort,
also kann ich mit mid() tatsächlich den String nur eindampfen !?

ok muss ich mir halt was anderes ausdenken bleibt wohl nur

Code: Alles auswählen

left(mytext,i) & "xxx" & right(mytext,len(mytext)-i)

oder so
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3810
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: mid() foppt mich

Beitrag von balu »

Hallo clag,

muss es den unbedingt mid sein?
Für Textersetzungen nehme ich sehr gerne replace. Siehe auch Andrew Pitonyak.

Code: Alles auswählen

Sub Main

sMyText = "Hallo World here I am"
sMyTextNew = replace(sMyText, " World", "")

print "sMyText = " & sMyText
print "sMyTextNew = " & sMyTextNew

sAlterText = "Hallo here I am"
sNeuerText = replace(sAlterText, "Hallo ", "Hallo World ")

print "sAlterText = " & sAlterText
print "sNeuerText = " & sNeuerText

End Sub
Versuchs mal damit, vielleicht kommst Du damit besser zurecht. Wünsche dir dabei viel Spaß und Erfolg :D .



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mid() foppt mich

Beitrag von clag »

Hallo Balu,

auch dir besten Dank für deinen Beistand :)

habe es jetzt mit left() und right() realisiert, replace() kam in diesem Fall nicht in Frage
da es um eine genaue platziertes Ersetzen/hinzufügen ging (also mit Positionsangabe)

hier ist das Ergebnis meines Bemühens anzusehen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten