Entwickler-Ecke
Sonstiges (Delphi) - Stringreplace Problem
the-kecks - Mo 16.03.09 22:54
Titel: Stringreplace Problem
hi,
ich habe mal wieder ein problem...
mein code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm3.Button1Click(Sender: TObject); var file1 : TStringlist; begin if not (pos(edit1.text, edit2.text) >0) then begin showmessage('Ungültige Zeile!'); exit; end else begin j:=StrToInt(edit1.text); file1:=TStringlist.Create; file1.LoadFromFile(Unit2.Dateipfad); file1[j]:=StringReplace(file1[j], Unit1.antwort, Unit1.new, [rfReplaceAll]); file1.SaveToFile(Unit2.Dateipfad); file1.free; Close; exit; end; end; |
Stringreplace funzt nicht...die datei wird zwar geladen bleibt aber so wie sie ist -.- Ich hab keine Ahnung woran das liegen könnte. der gleiche code funzt an einer anderen stelle super!
mfg
jaenicke - Mo 16.03.09 23:11
Was soll die if-Abfrage bewirken? Das sieht seltsam aus. Sie prüft jedenfalls nicht, ob eine gültige Zahl im Editzfeld steht, was eigentlich nötig wäre.
Wozu die globalen Variablen? Welche Werte haben die?
Fehlt in Dateipfad vielleicht die Pfadangabe?
the-kecks - Mo 16.03.09 23:17
oben wird abgefragt ob aus einer auswahl (edit2) auch ein wert genommen wurde.
dateipfad= pfad zur datei
antwort= altes qort in der datei nach erfolgreich gesucht wurde
new= dieses wort ersetzt antwort im string
mfg
jaenicke - Mo 16.03.09 23:21
the-kecks hat folgendes geschrieben : |
| oben wird abgefragt ob aus einer auswahl (edit2) auch ein wert genommen wurde. |
Wenn es eine Auswahl gibt, warum nimmst du dann keine ComboBox mit Style auf csDropDownList? :shock:
Setz doch einfach mal vor das StringReplace das:
Delphi-Quelltext
1: 2:
| ShowMessage('"' + file1[j] + '"'#13#10'"' + Unit1.antwort + '"'#13#10'"' + Unit1.new + '"'); |
oder nimm am besten ein Memo und poste was dann drin steht:
Delphi-Quelltext
1: 2:
| MemoX.Text := '"' + file1[j] + '"'#13#10'"' + Unit1.antwort + '"'#13#10'"' + Unit1.new + '"'; |
Dann bist du sicher, dass j die richtige Zeile ist.
the-kecks - Mo 16.03.09 23:26
ok danke ich hatte vergessen, dass delphi in dateien nicht mit der zeile 1 sondern 0 anfängt.
mfg
jaenicke - Di 17.03.09 00:02
Dabei handelt es sich um ein Array und die fangen normalerweise immer bei 0 an, es sei denn man legt es extra anders fest bei einem statischen Array.
Die einzige Ausnahme sind ansonsten die Buchstaben in einem String. Deren Indizes fangen aus "historischen" Gründen bei 1 an, weil bei ShortStrings in Index 0 die Länge gespeichert wurde.
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!