![]() |
StringReplace mit Record ohne Ergebnis
Hallo Leute!
Ich versuche gerade einen MemoText durchsuchen und verändern zu lassen. Eigentlich kein Problem: StringReplace. Ich bekomme aber keine Umwandlung hin... Der Record und das füllen dessen funktioniert ohne Probleme.
Delphi-Quellcode:
Beim durchlauf des Record-Arrays komme ich aber wie gesagt nicht weiter.
type
T_recListEigenschaft = record sParm, sEigenschaft: String; end; Auch mit normalen String-Arrays geht es nicht. Der "normale Replace" funktioniert hingegen ohne Probleme.
Delphi-Quellcode:
for iEins := 0 to MFile.Lines.Count - 1 do
begin sInput := MFile.Lines[iEins]; for iZwei := 0 to Length(arrResult) - 1 do sInput := StringReplace( sInput, arrResult[iZwei].sParm, arrResult[iZwei].sEigenschaft, [rfReplaceAll, rfIgnoreCase] ); sInput := StringReplace(sInput, 'sFind', 'sChange', [rfReplaceAll, rfIgnoreCase]); MFile.Lines[iEins] := sInput; end; Hat jemand ggf. eine Erklärung? G |
AW: StringReplace mit Record ohne Ergebnis
Hallo,
sieht korrekt aus. Breakpoint (F5) / WatchPoint (F7) ?? Die iEins-Schleife könnte man auch weglassen (statt Lines.Count Lines.Text nehmen) Heiko |
AW: StringReplace mit Record ohne Ergebnis
Beim Schrittweise durchgehen kann ich soweit nur feststellen, dass:
|
AW: StringReplace mit Record ohne Ergebnis
Zitat:
|
AW: StringReplace mit Record ohne Ergebnis
Ach so: und die Delphi-Version angeben.
|
AW: StringReplace mit Record ohne Ergebnis
Lass dir ggf. in der iZwei Schleife mal arrResult[iZwei].sParm und arrResult[iZwei].sEigenschaft anzeigen? Daß StringReplace nicht auf ganze Wörter prüft weißt du?
|
AW: StringReplace mit Record ohne Ergebnis
Ich benutzte: Delphi 2009 Update 2 auf meinem Notebook mit Win 7 x64 SP1.
Soweit hab ich nur die Jedi-Komponenten installiert, die ich in dem Projekt aber nicht verwende. In den Input-Zeilen stehen so Texte wie: Zitat:
Im Record sind Elemente gespeichert wie: Zitat:
In der Replace-Schleife habe ich mir gerade nochmal die einzelnen Werte separat ausgeben lassen. Auch iO. |
AW: StringReplace mit Record ohne Ergebnis
Zitat:
Du schreibst nur in einer Kopie des Records rum, welche danach nicht zurückgespeichert, sondern einfach verworfen wird. An den "eigentlichen" Recordvariablen änderst du also nichts und somit bleibt der alte Wert auch erhalten. Fazit: - entweder den Record rauskopieren, ändern und neu in der Liste abspeichern - oder auf Daten-Objekte umstellen (TObjectList, eine Persistent-Collection oder Dergleichen) - oder einen Pointer auf die Records besorgen und darüber den Inahlt ändern |
AW: StringReplace mit Record ohne Ergebnis
Zitat:
|
AW: StringReplace mit Record ohne Ergebnis
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:43 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