Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler in Schleife... (https://www.delphipraxis.net/15394-fehler-schleife.html)

billi 27. Jan 2004 20:25


Fehler in Schleife...
 
Hallo,
ich hab folgende Schleife:
Delphi-Quellcode:
  j := 0;
  while j <= high(Dateinamen) do
    begin
      // Schreiben
      try
        test := Dateinamen[j];
        ausg := StringReplace(str, vari1, Dateinamen[j], [rfReplaceAll, rfIgnoreCase]);
      except
        ausg := StringReplace(str, vari1, 'f1', [rfReplaceAll, rfIgnoreCase]);
      end;
      try
        test := Dateinamen[j+1];
        ausg := StringReplace(ausg, vari2, Dateinamen[j+1], [rfReplaceAll, rfIgnoreCase]);
      except
        ausg := StringReplace(str, vari2, 'f2', [rfReplaceAll, rfIgnoreCase]);
      end;
      try
        test := Dateinamen[j+2];
        ausg := StringReplace(ausg, vari3, Dateinamen[j+2], [rfReplaceAll, rfIgnoreCase]);
      except
        ausg := StringReplace(str, vari3, 'f3', [rfReplaceAll, rfIgnoreCase]);
      end;
      try
        test := Dateinamen[j+3];
        ausg := StringReplace(ausg, vari4, Dateinamen[j+3], [rfReplaceAll, rfIgnoreCase]);
      except
        ausg := StringReplace(str, vari4, 'f4', [rfReplaceAll, rfIgnoreCase]);
      end;
     Write(datei, ausg);
     j := j+4;
    end;
"vari1" enthält "{name1}", "vari2" enthält "{name2}", usw.

Wenn die Anzahl der Einträge in dem Array "Dateinamen" keine Vielfache von "4" ist, sieht die AUsgegebene Zeile so aus: {name1}{name2}{name3}f4
{name1} und {name2} hätten aber durch die letzten beiden Arrayelemnete ersetzt werden müssen und {name3} durch "f3".

Was hab ich da falsch gemacht?
gruß
billi

[edit=FuckRacism]Delphi-Syntax hinzugefügt, nimm bein nächsten Mal doch anstatt der Code-Syntax einfach die Delphi-Syntax. Mfg, FuckRacism[/edit]

p3ps1 27. Jan 2004 22:03

Re: Fehler in Schleife...
 
mmh, was ist noch mal try und except?
Ich wusste das zwar mal aber irgendwie hab ichs nie benutzt. :duck:

scp 27. Jan 2004 22:12

Re: Fehler in Schleife...
 
Zitat:

Zitat von billi
Hallo,

Was hab ich da falsch gemacht?
gruß
billi

Wenn ich das richtig durchblicke, dann müsste es bei Verarbeitung von j+1, j+2 und j+3 im except
Delphi-Quellcode:
ausg := StringReplace(ausg, .....
heissen und nicht
Delphi-Quellcode:
ausg := StringReplace(str, .....

MikeS 27. Jan 2004 22:14

Re: Fehler in Schleife...
 
moin zusammen

dein problem habe ich jetzt auch nicht erkannt, aber
meinst du nicht das ein paar if abfragen das ganze irgendwie eindeutiger und
übersichtlicher machen?

nur so ein tipp!
kann dir leider nicht helfen! :(

Touchdown 27. Jan 2004 22:29

Re: Fehler in Schleife...
 
Tja wo fängt man an:


1. Kein guter Style, auf einen Fehler ein Ergebniss zu setzen. Try except so zu missbrauchen habe ich vorher nicht gesehen. Versuch es mal mit POS

2. Ich kann kaum erkennen was du machen willst, aber eine for-Schleife erscheint mir geeigneter

3. Selbsterklärende Bezeichner wählen, du kommentiertst sie ja schon selbst, warum nennst du die Vari's nicht gleich so :mrgreen:

PS: Nicht böse sein, ich meine es nur gut mit dir :angle:

billi 28. Jan 2004 13:42

Re: Fehler in Schleife...
 
@scp: Das wars!!! Vielen Dank... Sowas sollte man net übersehen... :oops:
@Touchdown: Ich weis nicht, die while-schleife ist da schon ganz passend um immer 4 hintereinanderliegende arryelemente zusammen auszugeben. Was soll ich denn statt try except verwenden?

danke für die Tipps... Dieser missbrauchte Stil ist durch das viele Rumprobieren an der Anwendung entstanden.
Ich werd mich heute Abend mal dransetzen und eure Tipps umsetzen...
gruß
billi


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz