Entwickler-Ecke
Sonstiges (Delphi) - mal wieder pos , copy
Sauger Chris - Fr 18.05.07 14:25
Titel: mal wieder pos , copy
Moin
beschäftige mich gerade mit dem pos , copy , Delete,Insert usw.
unten hab ich mal meinen code gepostet
es tritt folgender fehler auf
(Im Projeckt Project2.exe ist eine Exception der Klasse EstringListError aufgetreten. Meldung:
Listindex überschreitet das maximum(1))
so es liegt wetten an
Delphi-Quelltext
1:
| checkstring := konf.Strings[i]; |
aber wie soll ich sonst jede einzelne zeile checken ?? plz help me thx
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| Writeln('()=======() String lösch test ()========()'); Writeln(''); konf := TStringList.Create; try konf.Sorted := true; konf.Duplicates := dupIgnore; konf.LoadFromFile('test.txt'); for i:=0 to konf.Count -1 do begin checkstring := konf.Strings[i]; position := Pos(':', checkstring); konf.Text := Copy(checkstring, 1, Position-1); konf.SaveToFile('dddd.txt'); end; except Writeln('Ein Fehler ist aufgetreten'); konf.Free; end; |
mfg saugi
Tino - Fr 18.05.07 14:30
Hallo!
Der Fehler liegt wohl an dieser Zeile:
Delphi-Quelltext
1:
| konf.Text := Copy(checkstring, 1, Position-1); |
Mit dieser Zuweisung hat die StringListe plötzlich nur noch eine Zeile! Beim nächsten Durchlaufe der Schleife wenn du auf die zweite Zeile zugreifen willst knallt es natürlich. ;-)
Besser wäre das wahrscheinlich so:
Delphi-Quelltext
1:
| konf.Strings[i] := Copy(checkstring, 1, Position-1); |
Außerdem solltest du die StringListe immer freigeben und nicht nur im Falle einer Exception. ;-)
Macht es wirklich sinn in jedem Schleifen-Durchlauf die StringListe zu speichern?
Gruß
Tino
Calculon - Fr 18.05.07 14:34
..und die Zeile
Delphi-Quelltext
1:
| konf.SaveToFile('dddd.txt'); |
würde ich außerhalb der for-Schleife platzieren, außer es hat einen tieferen Sinn für dich, dass sie dort steht.
[edit]..zu spät[/edit]
Sauger Chris - Fr 18.05.07 14:41
ok so geht es thx euch 2 =)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| konf := TStringList.Create; try konf.LoadFromFile('test.txt'); for i:=0 to konf.Count -1 do begin checkstring := konf.Strings[i]; position := Pos(':', konf.Strings[i]); konf.Strings[i] := Copy(checkstring, 1, Position-1); end; konf.SaveToFile('dddd.txt'); konf.Free; except Writeln('Ein Fehler ist aufgetreten'); konf.Free; end; |
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!