Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - string zwischen "{" und "}" ersetzen
Raphael O. - Di 02.12.03 22:03
Titel: string zwischen "{" und "}" ersetzen
habe da mal eine Frage (steh grad ziemlich aufm schlacuh und denke und hoffe, dass das eigentlich nicht so schwer sein dürfte :D
ich habe ne datei, die in etwa so aufgebaut ist:
| Zitat: |
{83547}{83573}
{83574}{83621} |
wie kann ich da jetzt die Werte zwischen den geschweiften Klammern um einen bestimmten Wert erhöhen?
habe da mit "pos" das Problem das das ja immer nur den ersten Eintrag findet :-/
thx =)
Anonymous - Di 02.12.03 22:18
Hier hab ich mal eben was gebastelt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure IncInBrackets(txt: pchar); var cpy: pchar; begin while txt^ > #0 do begin case txt^ of '{': while (txt^ in ['{', '0'..'9', '}']) do begin if txt^ = '}' then begin cpy := txt; dec(cpy); inc(cpy^); while (cpy^ = chr(ord('9') + 1)) do begin cpy^ := '0'; dec(cpy); if cpy^ <> '{' then inc(cpy^); end; end; inc(txt); end; end; inc(txt); end; end; |
nach 99999 kommt 00000
aufruf Beispielsweise so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var p: pchar; begin p := pchar(memo1.text); IncInBrackets(p); memo1.text := p; end; |
olliterski - Mi 03.12.03 03:38
Titel: Re: string zwischen "{" und "}" ersetzen
| Fiji-Fighter hat folgendes geschrieben: |
...
habe da mit "pos" das Problem das das ja immer nur den ersten Eintrag findet :-/
thx =) |
haste schon mal darüber nachgedacht den Wert den PosEx zurückgibt als neuen Startwert einzufügen???
Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| i:=1;
while i <> 0 do begin i:=PosEx('{',s,i)+1; // tue was auch immer - ersetzen, löschen etc. end; |
...nur mal so als kurzen Tip (hab ich jetzt mal einfach so geschrieben!!!). PosEx() ist einfach Pos() erweitert um den letzen Wert, der besagt wo PosEx() das nächste mal mit dem suchen beginnen soll!
Vielleicht hilft es!
Viele Grüße
Oliver
Raphael O. - Mi 03.12.03 18:46
thx hatte es jetzt auch so schon hinbekommen, aber das dürfte den Code nochmal vereinfachen ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!