![]() |
Schleifen problem
Hi
habe mal ein schleifen Problem bekomme es leider nicht hin die nächsten vier zeilen von meinem memo umzuschreiben die erste zeile von memo1 wird mit der zweiten zeile vom memo überschrieben aber wie bekomme ich den rest hin
Delphi-Quellcode:
danke schonmal
procedure TForm1.sysconfsumschreiben;
var alt,neu : String; sl: TStringList; i: integer; begin alt:=(ExtractFilePath(ParamStr(0)) + '\Dateisysconfs\SYSCONF.S'); neu:= (ExtractFilePath(ParamStr(0)) + '\Dateisysconfs\neueSysconf\Sysconf.s'); sl := TStringList.Create; try sl.LoadFromFile(alt); for i := 0 to Pred(sl.Count) do sl[i] := StringReplace(sl[i],Memo1.Lines[0],Memo2.Lines[0],[rfReplaceAll]);// hier sl.SaveToFile(neu); finally FreeAndNil(sl); end; end; Gruss An DeddyH |
Re: Schleifen problem
Was soll der Code machen?
|
Re: Schleifen problem
Es wird aus einer datei 4 zeilen ins memo1 geladen die werden dann mit einem Edit feld umgeschrieben
Dieses wird dann in memo2 angezeigt jetzt schreibe ich die 4 zeilen wieder um und dann soll die datei wieder gespeichert werden also ich will einfach nur
Delphi-Quellcode:
diese zeile viermal hochzählen lassen
sl[i] := StringReplace(sl[i],Memo1.Lines[0],Memo2.Lines[0],[rfReplaceAll]);// hier
|
Re: Schleifen problem
kann mir da keiner helfen??? :cry:
|
Re: Schleifen problem
Dein letztes Posting diesbezüglich ist gerade mal eine Stunde alt. :warn: Wenn es jemand weiß, wird er sich schon melden.
|
Re: Schleifen problem
Ich versteh halt immer noch nicht, was mit was ersetzt werden soll. Mit dem Code ersetzte du ja in der Stringliste den Inhalt eines Memos mit dem Inhalt eines anderes Memos.
|
Re: Schleifen problem
Liste der Anhänge anzeigen (Anzahl: 1)
Genau aber nur die erste bzw. den index 0 und ich wies net wie ich das anstellen kann das ich den index 0,1,2,3 ersetzen kann ich hänge das programm mal an
|
Re: Schleifen problem
Du könntest auch Schleife weglassen und die Liste auf einmal ersetzen:
Delphi-Quellcode:
sl.Text := StringReplace(sl.Text,Memo1.Lines[0],Memo2.Lines[0],[rfReplaceAll]);
|
Re: Schleifen problem
meinst du so
Delphi-Quellcode:
das geht doch nicht.. . . sl.Text := StringReplace(sl.Text,Memo1.Lines[0],Memo2.Lines[0],[rfReplaceAll]); sl.Text := StringReplace(sl.Text,Memo1.Lines[1],Memo2.Lines[1],[rfReplaceAll]); sl.Text := StringReplace(sl.Text,Memo1.Lines[2],Memo2.Lines[2],[rfReplaceAll]); sl.Text := StringReplace(sl.Text,Memo1.Lines[3],Memo2.Lines[3],[rfReplaceAll]); . . . end; |
Re: Schleifen problem
Was steht den in den Memos drin?
|
Re: Schleifen problem
Das hier im Memo1
Delphi-Quellcode:
und soll gegen das hier z.b (zahl ist variabel eingebbar und wird immer hochgezählt) erstzt werden
DESK-0 = TASK(0) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile1 (index 0)
DESK-1 = TASK(1) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile2 (index 1) DESK-2 = TASK(2) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile3 (index 2) DESK-3 = TASK(3) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile4 (index 3)
Delphi-Quellcode:
DESK-0 = TASK(33) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile1 (index 0)
DESK-1 = TASK(34) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile2 (index 1) DESK-2 = TASK(35) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile3 (index 2) DESK-3 = TASK(36) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) //zeile4 (index 3) |
Re: Schleifen problem
Und in der datei stehen die Inhalte des 1. Memos drin?
|
Re: Schleifen problem
das steht in der ganzen datei
Delphi-Quellcode:
[SYSTEM] RPCI = TCP(16000) [DEVICE] MD6 = C:\Programme\XTalk IF0 = D:\Medi\INST ; Installationsdateien (INST*.P...) IS0 = D:\Medi\SYS ; Hilfsprogramme (RTSI, SVSI, ...) IP0 = D:\Medi\PRG4 ; Medi-Programme MS0 = D:\Medi\PDATEN ; PALPHA,PSTAMM,PDATEN,PLINK,PDFORM,HBLISTE MS1 = D:\Medi\HDATEN ; BT,TK,RECALL,WBUCH,FIBU,LABDAT,FORM,PLRD,UVRD MS2 = D:\Medi\PRAXIS ; KKD,LST,DIA,BEF MS3 = D:\Medi\FORM ; Formular-Quellcodes MS4 = D:\Medi\PARA ; .P, Quellen der .P Daten MS5 = D:\Medi\MED ; PharmaStar Dateien MS7 = D:\Medi\TEMP ; temporäre Dateien MS8 = D:\Medi\STAT ; Statistikdateien MS9 = D:\Medi\ARCHIV ; Archivdateien FL0 = A: PP0 = LPT1: LA0 = COM2: ;Lesegerät LA1 = COM9: ;Ldfü mit isdn karte ; Die Consolentypen und die dazugehörigen Parameter werden durch das ; in eckigen Klammern stehende Wort CONSOLE eingeleitet. [CONSOLE] DESK-0 = TASK(0) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw)// die zeilen ändern DESK-1 = TASK(1) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) DESK-2 = TASK(2) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) DESK-3 = TASK(3) LPT(PP0) WX() WY() FONT() TITLE(Server) START(pw) |
Re: Schleifen problem
Zitat:
|
Re: Schleifen problem
Eigentlich sollte der Replace gehen.
|
Re: Schleifen problem
Der geht ja auch aber so wie ich es mach nur die erste zeile
|
Re: Schleifen problem
Un
Zitat:
|
Re: Schleifen problem
nein es wird immer nur die erste überschrieben
damit
Delphi-Quellcode:
procedure TForm1.sysconfsumschreiben;
var alt,neu : String; sl: TStringList; i: integer; begin alt:=(ExtractFilePath(ParamStr(0)) + '\Dateisysconfs\SYSCONF.S'); neu:= (ExtractFilePath(ParamStr(0)) + '\Dateisysconfs\neueSysconf\Sysconf.s'); sl := TStringList.Create; try sl.LoadFromFile(alt); for i := 0 to Pred(sl.Count) do sl[i] := StringReplace(sl[i],Memo1.Lines[0],Memo2.Lines[0],[rfReplaceAll]);// hier sl.SaveToFile(neu); finally FreeAndNil(sl); end; end; |
Re: Schleifen problem
Im Code ersetzt du ja nur die erste Variante
Delphi-Quellcode:
for i := 0 to Pred(sl.Count) do
begin sl[i] := StringReplace(sl[i],Memo1.Lines[0],Memo2.Lines[0],[rfReplaceAll]); sl[i] := StringReplace(sl[i],Memo1.Lines[1],Memo2.Lines[1],[rfReplaceAll]); sl[i] := StringReplace(sl[i],Memo1.Lines[2],Memo2.Lines[2],[rfReplaceAll]); sl[i] := StringReplace(sl[i],Memo1.Lines[3],Memo2.Lines[3],[rfReplaceAll]); end; sl.SaveToFile(neu); |
Re: Schleifen problem
Komisch so hatte ich das auch schonmal da ging das net
Vielleicht hatte ich es auch net richtig geschrieben aber jetzt geht es dank dir tausendmal Gruss sascha wünsch euch noch einen schönen abend |
Re: Schleifen problem
Wahrscheinlich hast du begin..end vergessen.
|
Re: Schleifen problem
:( ich könnt mir echt in denn Ar... beissen aber ich bin ja Froh das es hier soviel Profies gibt :coder:
|
Re: Schleifen problem
Ist mir auch aufgefallen, aber das es so lange gedauert hat, bis es einer Postet?
|
Re: Schleifen problem
In seinem Codebeispiel bestand der Schleifenrumpf auch aus nur einer Zeile. Ich würde aber raten beginn..end immer zu verwenden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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 by Thomas Breitkreuz