AGB  ·  Datenschutz  ·  Impressum  







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

Rekursiv Suchen

Ein Thema von GroZ · begonnen am 9. Nov 2015 · letzter Beitrag vom 11. Nov 2015
Antwort Antwort
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#1

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 15:04
Lediglich die Endlosschleife krieg ich nicht gelöst. Aber ich werde jetzt deinen Vorschlag mal ausprobieren und werde berichten.
Darf ich Deine Aufmerksamkeit auf #2 lenken, du solltest auf <>0 testen und nicht auf =1 und als Überschrift wäre "Dateien rekursiv suchen" noch besser.

Gruß
K-H
Das hab ich probiert nur wird da die Funktion komplett übersprungen. Also er schreibt dann 'Konvertierung erfolgreich' aber Dateien wurden nicht konvertiert. Und gleich danach Fehler 1 das bedeutet dass das Verzeichnis falsch ist....
Julian
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 15:06
Du warst nie und nimmer in einer Endlosschleife drin, denn deine if-Abfrage auf "PFAD/dir" hat verhindert, dass du jemals in die repeat-Schleife reinkommst, außer deine Eingabe lautete tatsächlich "PFAD/dir" und dieses Verzeichnis wird's wohl nicht geben.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#3

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 15:08
Du warst nie und nimmer in einer Endlosschleife drin, denn deine if-Abfrage auf "PFAD/dir" hat verhindert, dass du jemals in die repeat-Schleife reinkommst, außer deine Eingabe lautete tatsächlich "PFAD/dir".
Doch ich war in einer drin. Also die CPU auslastung ist von 3% auf 95% hochgegangen
und "PFAD" ist zum Beispiel "C:\Programme\Foo\Alt\usw" nicht das Wort Pfad
Julian

Geändert von GroZ ( 9. Nov 2015 um 15:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 15:12
Wie kannst du in der Endlosschleife drin sein, wenn er angeblich schreibt "Konvertierung erfolgreich".
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
GroZ

Registriert seit: 6. Jul 2015
Ort: Harz
167 Beiträge
 
Delphi 7 Personal
 
#5

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 15:16
Das "Konvertierung erfolgreich" kommt nur wenn ich <> 0 habe. Sprich da ist keine Endlosschleife. Die Endlosschleife kommt nur wenn ich = 0 nutze.
Julian
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 15:24
Dann hab ich wohl deinen Post #4 falsch interpretiert.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#7

AW: Rekursiv Suchen

  Alt 9. Nov 2015, 17:25
Da Du anscheinend mein Post (#5) nicht willst...

.. zerlege ich deinen Code von Post #1

Delphi-Quellcode:
var f : integer;
    eingabe, Parameter : string;
    X : TSearchRec;
begin
  writeln('FRP to PDF');
  Writeln('');
  Writeln('Verzeichnis eingeben:');
  readln(eingabe);
  Parameter := 'PFAD';
  if eingabe = Parameter +'/dirthen
    begin
      Writeln(Parameter);
      if FindFirst(Parameter, faAnyFile, X) = 0 then try // Hier fehlt ein an den Parameter angehängtes '*.*' oder direkt '*.FRP', notwendig, damit FindFirst auch nach Files sucht
    repeat
      FRPzuPDF(Parameter,ChangeFileExt(Parameter,'.pdf')); // Hier sollte eigentlich was mit x.Name gemacht werden, sprich dem gefundenen Dateiname. In Parameter steht ja nur ein Verzeichnis und kein Dateiname !!
    until FindNext(X) = 1; //Hier kommt immer ne' Endlosschleife // Und wie schon mehrfach geschrieben '<> 0'
  finally
    FindClose(X);
    Writeln('Konvertierung erfolgreich');
    end;
end;
Deine Routine findet ein Verzeichnis, keine Datei!
Wenn deine Suche mit *.* gemacht würde, dann würde er Filenamen in X zurückgeben, sprich die Dateien, welche Du ja eigentlich konvertieren willst. Da Du diese aber nicht benutzt, passiert auch nichts.

Er spring bei <> 0 direkt wieder raus, da er ja das Verzeichnis schon gefunden hat und kein weiteres (gleiches) findet..

So, jetzt schaust Du DIr mal die Funktion in meinem Post #5 oder den Post von Sir Rufo #8 an, da ist genau das hier geschriebene gemacht worden..
  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 08:38 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