Definitionsdatei zum Suchen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag 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
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag 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...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ProcedureReturn beendet sofort...

... ist aber Geschmackssache, mitten aus einer Proc zu springen ...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Schon, aber wenn in der Procedure ein Fehler festgestellt wurde, z.B. das keine Internetverbindung besteht...was dann?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag 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:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

weils leer is?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Weil in der Preference-Datei steht:
av = 0
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag 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.
Antworten