AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler in Schleife...

Ein Thema von billi · begonnen am 27. Jan 2004 · letzter Beitrag vom 28. Jan 2004
Antwort Antwort
billi

Registriert seit: 11. Sep 2003
Ort: Darmstadt
127 Beiträge
 
Delphi 5 Standard
 
#1

Fehler in Schleife...

  Alt 27. Jan 2004, 21:25
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]
  Mit Zitat antworten Zitat
p3ps1

Registriert seit: 16. Dez 2003
Ort: Recklinghausen
87 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Fehler in Schleife...

  Alt 27. Jan 2004, 23:03
mmh, was ist noch mal try und except?
Ich wusste das zwar mal aber irgendwie hab ichs nie benutzt.
Es geht schief was nur schiefgehen kann
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: Fehler in Schleife...

  Alt 27. Jan 2004, 23:12
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
ausg := StringReplace(ausg, ..... heissen und nicht
ausg := StringReplace(str, .....
  Mit Zitat antworten Zitat
MikeS

Registriert seit: 3. Mai 2003
Ort: München
157 Beiträge
 
Delphi 7 Professional
 
#4

Re: Fehler in Schleife...

  Alt 27. Jan 2004, 23:14
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!
Mike Schröder
Fleiß kann man vortäuschen, faul muss man schon selber sein!
  Mit Zitat antworten Zitat
Touchdown

Registriert seit: 17. Feb 2003
227 Beiträge
 
#5

Re: Fehler in Schleife...

  Alt 27. Jan 2004, 23:29
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

PS: Nicht böse sein, ich meine es nur gut mit dir
function getallfornothing: TGoldesel;
begin
result := TGoldesel.create;
end;
  Mit Zitat antworten Zitat
billi

Registriert seit: 11. Sep 2003
Ort: Darmstadt
127 Beiträge
 
Delphi 5 Standard
 
#6

Re: Fehler in Schleife...

  Alt 28. Jan 2004, 14:42
@scp: Das wars!!! Vielen Dank... Sowas sollte man net übersehen...
@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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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