Seite 2 von 5

Verfasst: 22.03.2009 16:58
von DrNo
Ok danke, hab eure Codes gemixt und hat folgendes Ergeben (Gerüst):

Code: Alles auswählen

Procedure Scan(Pfad$)
  liste$ =OpenFileRequester("Title", "C.\", "Alle Dateien (*.*)", 0)
If ReadFile(0, liste$) 
    NewList SL.s() 
    While Not Eof(0) 
      AddElement(SL()) 
      SL() = ReadString(0)
      Debug SL() 
    Wend 
  CloseFile(0)  
  End 
EndIf 
  EDID = ExamineDirectory(#PB_Any,Pfad$,"*.*")
  If EDID
    While NextDirectoryEntry(EDID)
      Entryname$ = DirectoryEntryName(EDID)
      If DirectoryEntryType(EDID) = #PB_DirectoryEntry_Directory And Not Entryname$ = "." And Not Entryname$ = ".."
        Scan(Pfad$+"\"+Entryname$)
      ElseIf DirectoryEntryType(EDID) = #PB_DirectoryEntry_File And Not Entryname$ = "." And Not Entryname$ = ".."
        ForEach SL() 
        If SL() = Entryname$ 
          Debug "Found "+Entryname$
        EndIf 
      Next 
      EndIf
    Wend
    FinishDirectory(EDID)
  EndIf 
EndProcedure
Pfad$ = PathRequester("Verzeichnis angeben...", "C:\")
Scan(Pfad$)
DrNo

Verfasst: 22.03.2009 21:16
von DrNo
Dumme Frage aber s fällt mir grad irgrendwie nicht mehr ein/ich find den Befehl nicht mehr: Mit was für nem Befehl verlass (=beend) ich ne Procedure wie eine Schleife (Break)?
Falls irgendwas schief läuft oder so...

Verfasst: 22.03.2009 21:20
von Kaeru Gaman
ProcedureReturn beendet sofort...

... ist aber Geschmackssache, mitten aus einer Proc zu springen ...

Verfasst: 22.03.2009 21:30
von DrNo
Schon, aber wenn in der Procedure ein Fehler festgestellt wurde, z.B. das keine Internetverbindung besteht...was dann?

Verfasst: 22.03.2009 21:35
von Kaeru Gaman
den gesamten vorgang in ein If einschließen...?

Code: Alles auswählen

Procedure KrempelTun()
  If InternetVerbindung()
    TuDies()
    und = TuDas()
    Ergebnis = #Erfolg
  Else
    Ergebnis = #Fehlschlag
  EndIf
  ProcedureReturn Ergebnis
EndProcedure

Verfasst: 22.03.2009 21:48
von DrNo
Schon, aber irgendwann

Code: Alles auswählen

If
  If
    If
      If
        If
          If
          EndIf
        EndIf
      EndIf
    EndIf
  EndIf
EndIf
Geht dann mal die Übersicht verloren... :lol:

Anderes Problem, keine Ahnung warum das passiert:
Ich hab ne variable, hier im Long Format und nen String - das Datum, die ich in einem Textfeld anzeigen möchte:

Code: Alles auswählen

If OpenPreferences("data\config.conf")
   dav = ReadPreferenceLong("av", 1000)
   ddate$ = ReadPreferenceString("date", "0000")
   ClosePreferences()
EndIf
Wenn ich diese aber jetzt anzeigen lasse:

Code: Alles auswählen

TextGadget(2, 20, 80, 270, 30, "Datenbankversion: "+Str(dav)+" vom "+ddate$+".")
Steht da dann nur:

Code: Alles auswählen

Datenbankversion: 0 vom .

...Warum????


DrNo :freak:

Verfasst: 22.03.2009 21:54
von Kaeru Gaman
weils leer is?

Verfasst: 22.03.2009 21:56
von ts-soft
Weil in der Preference-Datei steht:
av = 0

Verfasst: 22.03.2009 21:57
von Kaeru Gaman
nee.. weil die prefs nicht da ist.

also werden die defaults auch nicht gesetzt, weil die ReadPreference-Funktionen garnicht ausgeführt werden.

Code: Alles auswählen

If OpenPreferences("data\config.conf")
   dav = ReadPreferenceLong("av", 1000)
   ddate$ = ReadPreferenceString("date", "0000")
   ClosePreferences()
Else
  MessageRequester("Warning","Prefs not found")
  dav = 1000
  ddate$ = "0000"
EndIf

Verfasst: 22.03.2009 21:58
von DrNo
Doch, sie sind da. Das ists ja eben.

Wenn ich ganz am Anfang vom Code nen Message Requester mit dav und ddate reinsetze dann wird alles korrekt angezeigt.