String bearbeiten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

String bearbeiten

Beitrag von Pure-r-Freak »

was geht bei euch leute,
ich würde gerne aus einen string von rechts aus den teil bis zum ersten \ ausschneiden

also:
string$ = "c:\programme\hallo\aha\"
und das resultat sollte sein: "c:\programme\hallo\"

kann mir da irgendjemand helfen ????

:cry:
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

den habe ich zufällig noch in der schublade:

Code: Alles auswählen

string$ = "c:\programme\hallo\aha\"
Debug RemoveString(string$, StringField(string$, CountString(string$, "\"), "\") + "\")
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Ich würde folgendes machen:
Per CountString die Anzahl der "/" zählen,
per FindString die Position des vorletzten (oder wieviele auch immer) "/"-zeichens rausfinden.
Per Left(String$, Position) den linken Teil holen, und fertig.

Das sollte eigentlich zur Lösung reichen.
Bei FindString muss man eine Schleife einsetzen, und als Startposition jeweils den letzten Fundort angeben, das eben CountString-1 mal.

Simon


EDIT: MLK war schneller, seine Lösung scheint mir auch besser, solange nach nur einem Zeichen gesucht wird. Sonst musst du wohl meine Lösung verwenden.

EDIT, Frage: wie arbeitet eigentlich StringField? Nach meiner Methode?
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

MLK hat geschrieben:den habe ich zufällig noch in der schublade:

Code: Alles auswählen

string$ = "c:\programme\hallo\aha"
Debug RemoveString(string$, StringField(string$, CountString(string$, ""), "") + "")
Toll, aber schonmal bedacht, dass auch C:\Programme\aha\aha\aha\ möglich sein könnte?

Code: Alles auswählen

string$ = "c:\programme\hallo\aha"
Debug Left(string$, Len(string$)-Len(StringField(string$, CountString(string$, ""), "")+""))
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
ORANGE
Beiträge: 19
Registriert: 29.12.2004 21:03

Beitrag von ORANGE »

Der ist auch nicht schlecht:

Code: Alles auswählen

string$ = "c:\programme\hallo\aha\"
Debug GetPathPart(Left(string$,Len(string$)-1)+".fak")
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

Beitrag von Pure-r-Freak »

ihr seid echt die besten
DANKE :allright: :allright: :wink: :lol: :lol: :o :D :mrgreen:
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Man, ich wollte gerade scho über Oranges Lösung meckern, und check erst jetzt, dass sie schon irgendwie geil ist. Ich hab zuerst gedacht, da würde er irgendwas anderes machen, aber grad noch rechtzeitig hab ichs kapiert...
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@ORANGE
Toplösung, beweist sehr viel Kreativität Bild
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

Beitrag von Pure-r-Freak »

kann das bsp von orange vielleicht jemand erklären ???????
:roll: :wink:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Pure-r-Freak hat geschrieben:kann das bsp von orange vielleicht jemand erklären ???????
:roll: :wink:
mit +".fak") simuliert er eine Datei wobei er mit GetPathPart den Pfad ermittelt
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten