Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi substring aus string nehmen (https://www.delphipraxis.net/34918-substring-aus-string-nehmen.html)

Flinto 30. Nov 2004 07:55


substring aus string nehmen
 
Salve zusammen,
Ich hab da ein kleines Problem, und zwar würde ich gerne aus einer Listbox einen Substring herausnehmen. Hab schon alle Threads durchgelesen zu diesem Thema bin aber trotzdem nicht ganz
schlüssig geworden. Also ein Eintrag in meiner List sieht so aus

Code:
12:11:23.123  : Bla testtesttest : bla bla bla bla bla bla bla bla
13:12:11.234  : testtesttest     : bla bla bla bla bla bla bla bla

Nun würde ich gerne 1. wenn vor dem testtesttest ein Bla steht das 'Bla' und das 'testtesttest'
einzeln rausnehmen
und 2. nur das 'testtesttest' rausnehmen, wenn kein 'Bla dort steht


Bis anhin habe ich das wie folgt gemacht. Auf diese weise wird aber wenn vor und nach dem
'testtesttest' die gleiche zeichenkette folgt (' : ') das 'testtesttest nicht rausgenommen.
Das ist genau mein Problem.

Code:
nPos := pos(' : ', FlbOutput.Items[nIdx]);
nPos := nPos + 3;
// get end-position of Class
nPos1 := pos('  : ', FlbOutput.Items[nIdx]);
nPos1 := nPos1 - nPos;
Temp := Copy(FlbOutput.Items[nIdx],nPos,nPos1);
Temp1 := copy(Temp, 0,3);
if ((Temp1 = 'Bla') OR (Temp1 = 'BLA') OR (Temp1 = 'bla')) then
  Temp := copy(Temp, 5, nPos1);
  if((FcbClass.Items.IndexOf(Temp) = -1) AND (Temp <> '')) then
    FcbClass.Items.add(Temp);
end;

Besten Dank schon im Voraus
Flinn

jim_raynor 30. Nov 2004 08:14

Re: substring aus string nehmen
 
Möchtest du den Text in dieser Spalte immer entfernen? Wenn ja kannst du doch einfach Zwei Copys machen:

Delphi-Quellcode:
Text:=Copy(OldText,1,10)+'   '+Copy(OldText,20,30);
Da es ja scheinbar feste breite hat, sollte es doch damit kein Problem geben.

Flinto 30. Nov 2004 08:36

Re: substring aus string nehmen
 
der 'testtesttest'- string kann ganz unterschiedliche längen haben. Das ist das Problem,
wie kriege ich das Ende des strings heraus?? Gibt es nicht so etwas wie die Position vom
ersten ' : ' bis zum zweiten ' : '?? Wenn ich den String zwischen den beiden ' : '
herausbekommen würde wäre mein Problem gelöst.

MikeS 30. Nov 2004 08:42

Re: substring aus string nehmen
 
Grüß Gott zusammen,

Mit POS kannst du nach dem Doppelpunkt suchen. Pos liefert immer die Position des ersten Doppelpunktes zurück. Wenn du den ersten gefunden hast änderst du diesen in ein anderes signifikantes Zeichen oder löscht den ersten Teil und suchst dann wieder mit Pos. Nun wird dir der nächste angezeigt und du kommst zu der Länge zwischen den beiden Doppelpunkten.

Steve 30. Nov 2004 08:44

Re: substring aus string nehmen
 
Hi,

Du kannst auch Delphi-Referenz durchsuchenPosEx benutzen, da kannste den Startindex angeben.

Gruß
Stephan :dance: :xmas:

Flinto 30. Nov 2004 13:30

Re: substring aus string nehmen
 
Dank schön, jezt klppts!!
Nur das mit dem PosEx hab ich nicht gefunden, hab aber auch nicht weiter gesucht
nachdem es die Delphi-Hilfe nicht gefunden hat...
ciao ciao

Matze 30. Nov 2004 13:32

Re: substring aus string nehmen
 
Zitat:

Zitat von Flinto
Nur das mit dem PosEx hab ich nicht gefunden, hab aber auch nicht weiter gesucht
nachdem es die Delphi-Hilfe nicht gefunden hat...

Das wäre ich der Unit StrUtils zu finden


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz