![]() |
Strings trennen
Hallo,
ich habe folgende Zeichenfolge in einem Memo stehen: 0141-1234561 -9239872 usw. ca 8000 verschiedene Zeilen Wie kann ich den Mittelteil herauslöschen das es so aussieht. 0141-9239872 gruss vom capo |
Re: Strings trennen
Da kannst Du mit copy/delete und pos arbeiten.
Die Hilfe und viele Beispiele im Forum sollten Dir da weiterhelfen. Grüße Klaus |
Re: Strings trennen
Hallo Klaus,
danke für deine Antwort, hab auch das hier gefunden: ![]() kann ich das auch dafür nehmen? gruss capo |
Re: Strings trennen
hab das grad mal so in paar min hingekrizelt...
habs aber net getestet... vielleicht gehts ja so (oder so ähnlich)
Delphi-Quellcode:
procedure TMain_Form.Strindurchsuchen ();
var sRow, sRowNew : String; i, ilen, ipos : Integer; begin ilen := Length(sRow); For i := 1 To iLen Do Begin If sRow[i] = '-' Then Begin sRowNew := Copy(sRow, 1, (iLen - i) sRowNew := sRowNew + Copy(sRow, i, iLen); End; End; End; |
Re: Strings trennen
Hi
Ein Vorschlag, der vielleicht etwas ungeschickt aussieht, dafür dir aber für solche Fälle immer eine Lösung bildet.
Delphi-Quellcode:
der Aufruf erfolgt dann für deinen Zweck
Funktion TMyForm1.GetTextElement(ElementNr: Integer; MeinTrennzeichen, MeinText: String): String;
Var RefStr : String; Ausg : String; ende : Integer; i : Integer; begin Ausg:=''; For i:= 1 To ElementNr do begin Ende:=Pos(MeinTrennzeichen,meinText); if Ende>0 then begin if i=ElementNr then Ausg:=Copy(RefStr,1,Ende-1) else RefStr:=Copy(RefStr,Ende+1,Length(RefStr)-Ende); end else if i=ElementNr then Ausg:=RefStr; end; Result:=Ausg; end;
Delphi-Quellcode:
oder auch, so wirds vielleicht deutlich
NeuStringwert:=GetTextElement(1,'-',AltString)+'-'+GetTextElement(3,'-',AltString);
Delphi-Quellcode:
sollte ergeben '123-890'
NeuStringwert:=GetTextElement(1,'-','123-4567-890')+'-'+GetTextElement(3,'-','123-4567-890');
Viel Spass Gruß oldmax |
Re: Strings trennen
Um noch n Tutorial hinterher zu werfen:
![]() mfg Christian |
Re: Strings trennen
Hallo capo,
hat Deine Zeichenfolge immer diesen Aufbau? Dann könntest Du folgendes ausprobieren:
Delphi-Quellcode:
Funktioniert aber nur, denn die Zeichenfolge immer gleich lang und die Trennzeichen an der gleichen Position sind.
var
NewString : string; i : Integer; begin for i := 0 to Memo1.Lines.Count - 1 do begin NewString := LeftStr(Memo1.Lines[i],4) + RightStr(Memo1.Lines[i],7); Memo1.Lines[i] := NewString; end; end; Grüße Ines |
Re: Strings trennen
Danke an alle.
Hallo oldmax ich krieg immer nur ein - zu sehen, bestimmt mache ich was falsch. Hallo r2c2 danke für die Klasse-Seite muss ich mir alles noch genau ansehen. Hallo Ines Leider sind die unterschiedlich lang. Oder was meintest du mit immer gleichem Aufbau? Was ist LeftStr und RightStr wie muss ich die definieren? gruss capo |
Re: Strings trennen
Grüße,
ne du machst keinen Fehler, in der Funktion wurde lediglich eine Kleinigkeit vergessen. Hab ich mal schnell korrigiert:
Delphi-Quellcode:
EDIT: Man kann natürlcih auch auf RefStr komplett verzichten und dafür direkt auf MeinText zugreifen ;)
function TForm1.GetTextElement(ElementNo: Integer; Seperator,
Text: String): String; var elementEnd, i: Integer; begin for i := 1 to ElementNo do begin elementEnd := pos(Seperator, Text); if elementEnd > 0 then begin if i = ElementNo then Result := Copy(Text, 1, elementEnd - 1) else Text := Copy(Text, elementEnd + 1, Length(Text) - elementEnd); end else if i = ElementNo then Result := Text; end; end; EDIT2: Funktion klein gemacht und COde-formatierung vorgenommen ;) |
Re: Strings trennen
Hallo angos
wie muss ich das mit dem memo machen?
Delphi-Quellcode:
Irgendwie verstehe ich nicht wo ich dann die Zahlen angeben soll.
procedure TForm1.Button3Click(Sender: TObject);
var NeuStringwert, AltString: string; i: Integer; begin for i := 0 to Memo1.Lines.Count - 1 do NeuStringwert := GetTextElement(1, '-', '???') + '-' + GetTextElement(3, '-', '???'); Showmessage(NeuStringwert); end; gruss capo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz