String bis zum letzten Leerzeichn kürzen

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

String bis zum letzten Leerzeichn kürzen

Beitrag von gnaps »

Hallo Forum,

ich habe einen String z.B. "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit"

wie kürze ich den String bis zum letzte Leerzeichen

Ergebnis = "Wie kürze ich das bis zum letzten Leerzeichen weg "

Ich komme einfach nicht auf sie Lösung

gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von RSBasic »

gnaps hat geschrieben:ich habe einen String z.B. "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit"
Ich versteh deine Beispiel-Zeichenkette nicht. Ist "wegmit" am Ende richtig oder war das ein Kopierfehler?
Meinst du vielleicht sowas?

Code: Alles auswählen

"Wie kürze ich das bis zum letzten Leerzeichen weg          "
Wenn ja, dann:

Code: Alles auswählen

Debug RTrim("Wie kürze ich das bis zum letzten Leerzeichen weg          ")
Wenn nicht, bitte ein neues Beispiel posten.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von gnaps »

Hi,

das ist kein Kopierfehler.

Die Zeichen "wegmit" sollen gelöscht werden da vor dem "wegmit" ein Leerzeichen ist

string = "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit"

Ergebnis = "Wie kürze ich das bis zum letzten Leerzeichen weg "

also das wegmit soll weg

gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von RSBasic »

So?

Code: Alles auswählen

Debug ReplaceString("Wie kürze ich das bis zum letzten Leerzeichen weg wegmit", "wegmit", "")
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von NicTheQuick »

Wahrscheinlich soll es egal sein, was das letzte Wort ist. Also wie gesagt: Alles hinter dem letzten Leerzeichen soll weg. Ganz einfach. Bin aber grad am Handy und kann hier jetzt schlecht was programmieren.
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von RSBasic »

Code: Alles auswählen

EnableExplicit

Define OriginalString$ = "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit"

Debug ReplaceString(OriginalString$, StringField(OriginalString$, CountString(OriginalString$, " ")+1, " "), "")
Kann man bestimmt besser machen. :D
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von gnaps »

Hi,

ja, ich habe eine Variable Text.s in der stehen im Programmablauf verschiedenen Texte drin.

Text.s = "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit "

dann gibts einen Button und wenn dieser geklickt wird soll der String bis zum vorletzten Leerzeichen gekürzt werden.

klick auf Button
Ergebnis = Text.s = "Wie kürze ich das bis zum letzten Leerzeichen weg "

klick auf Button
Ergebnis = Text.s = "Wie kürze ich das bis zum letzten Leerzeichen "

klick auf Button
Ergebnis = Text.s = "Wie kürze ich das bis zum letzten "

ACHTUNG es steht am Schluss immer ein Leerzeichen im String, also ich muss dann bis zum vorletzte String kürzen.

Das soll eine einfache UNDO-Funktion werden.


usw.

Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von RSBasic »

Man könnte es auch so machen:

Code: Alles auswählen

EnableExplicit

Define OriginalString$ = "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit "

Procedure.s RemoveLastWord(String$)
  ProcedureReturn Mid(String$, 1, Len(String$)-FindString(ReverseString(String$), " ", 2)+1)
EndProcedure

OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
OriginalString$ = RemoveLastWord(OriginalString$)
Debug OriginalString$
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von gnaps »

HI,

hab mal rum gemacht, bekomme aber das letzte Wort nicht weg.

Code: Alles auswählen

text.s = "Wie kürze ich das bis zum letzten Leerzeichen weg wegmit "

If OpenWindow(0,100,100,400,100,"Kürzen",#PB_Window_SystemMenu,0)
  ButtonGadget(1,30,30,60,30,"Kürzen")
  TextGadget(2,30,70,280,20,text.s)
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow ;x wurde gedrückt
        End
        
        
      Case #PB_Event_Gadget
        Select EventGadget()
            
          Case 1

            text.s= Mid(text.s, 1, Len(text.s)-FindString(ReverseString(text.s), " ", 2)+1)
            SetGadgetText(2,text.s)
            Debug text.s
            
        EndSelect
    EndSelect
  ForEver
EndIf
Wie weiter ???

Banal, aber ich brauchs halt

Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: String bis zum letzten Leerzeichn kürzen

Beitrag von gnaps »

Hi,

Ok, Ok,

letztes Wort ist nicht schlimm, habe einen Button der sowieso den ganzen Text löschen kann.

Danke an alle, war wie immer sehr Hilfreich und megaschell die Lösung.

Danke an alle.

Gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Antworten