Entwickler-Ecke
Sonstiges (Delphi) - String bis zum 1. leerzeichen und danach löchen wie???
Der-DeeJay - Do 11.12.03 21:18
Titel: String bis zum 1. leerzeichen und danach löchen wie???
HI
Ich Habe mal eine sicherlich sehr noob mäsige frage aber wie kann ich einen String nur bis zum ersten leerzeichen in einer variablen speichern???
so das es so aussieht??
Text: "Hallo ihr alle"
und im string soll nur "Hallo" stehen.
Wie macht man sowas???
Ich hoffe mir kann jemand helfen!!
MFG
Der-DeeJay
Delete - Do 11.12.03 21:20
COPY
POS
Aber du kommst besser weg, wenn du dir diese beiden Befehle mal in der Delphi-Hilfe anschaust. ;)
DeCodeGuru - Do 11.12.03 21:22
Willkommen im Delphi-Forum! :welcome:
Zu deinem Problem: du suchst einfach nach dem ersten Leerzeichen, speicherst die gefunde Position in einer variable und löscht dann einfach die Textteile nach diesem Leerzeichen. Die Funktionen, die du dafür brauchst, heißen
POS und
DELETE. Folge einfach den Links, oder schau in der Delphi-Hilfe. :)
P.S.: Du kannst auch mal nach Copy suchen. Damit kann man das auch machen.
Delete - Do 11.12.03 21:30
Und wenn man es von hand machen will, nimt man eine for-Schleife und testet jedes Zeichen mit if, ob es sich um ein Leerzeichen handelt. dabei kann man auch gleich kopieren.
DeCodeGuru - Do 11.12.03 21:32
JO, kann man auch, kommt aber darauf an, wo das erste Leerzeichen ist :wink: Mit ner For-Schleife dauert das ggf. etwas länger.
JoelH - Fr 12.12.03 09:48
Titel: hmm,
Quelltext
1:
| st := COPY(trim(st),1,POS(' ',trim(st))-1); |
focus - Fr 12.12.03 09:52
straight forward...da würd ich erst garnicht mit pos und sonstigem geraffel anfangen...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| ==>SPACE = 0x20 ==>ZERO = 0x00
topic=pC; while((^pC<>LZERO)and(^pC<>SPACE))Inc(pC); if(^pC<>LZERO) ^pC=LZERO; |
pc und topic sind jeweils zeiger auf zeichenketten, wobei in der zeichernkette (mit NULL terminiert) auf die topic zeigt nacher dein extrahierter begiff steht
Gruss
Michael
Motzi - Fr 12.12.03 10:32
@focus: sehr schön.. damit schreibst du ein Nullzeichen in deinen String und terminierst ihn damit. Aber der ganze restliche String dahinter bleibt trotzdem erhalten und der entsprechende Speicherplatz auch reserviert! Die richtige Methode wäre also mit Copy oder Delete arbeiten, wobei Delete besser ist, da dieses nur den String direkt verändert während Copy einen neuen String erstellt der dann nur der alten String-Variable zugewiesen wird...!
Der-DeeJay - Fr 12.12.03 14:45
Danke Leute nu kann ich auch weiter machen!!!
Ihr wart sehr hilfreich!!!!
MFG
Der DeeJay
Delete - Fr 12.12.03 15:43
SetLength ginge auch noch:
Delphi-Quelltext
1: 2: 3:
| szStr := 'Hallo ihr alle'; if pos(#32,szStr) > 0 then SetLength(szStr,pos(#32,szStr)-1); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!