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 »

Hi,
Bin grade in der Schule, kann deswegen nix testen.

@Kaeru Gaman:
Ich hab vorher doch schon erwähnt, dass ich HIER, direkt am Anfang nach dem

Code: Alles auswählen

If OpenPreferences("data\config.conf") 
   dav = ReadPreferenceLong("av", 1000) 
   ddate$ = ReadPreferenceString("date", "0000") 
   ClosePreferences() 
EndIf
Nen MessageRequester("Info", "Version "+Str(dav)+"..." usw) eingefügt hab. Und da hats gefunzt!

Muss man das vllt. bei jeder Procedure aufrufen?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Muss man das vllt. bei jeder Procedure aufrufen?

momendemal....

du fragst doch jetzt nicht allen ernstes, warum deine nicht-globalen variablen in irgendwelchen procedures nicht bekannt sind?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

> du fragst doch jetzt nicht allen ernstes, warum deine nicht-globalen variablen in irgendwelchen procedures nicht bekannt sind?
das wäre jetzt fatal :lol:
Win11 x64 | PB 6.20
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Ok stimmt. Geb ich zu....da gabs doch irgendwelche Einschränkungen wie Public func und so ähnlich, oder?

Sorry, aber du weisst doch inzwischen sicher dass ich ein PB noob [nup] bin, und Proceduren auch erst ein paar mal Verwendet hab, aber auch nur der Übersicht wegen... /:->
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Ok hat sich erledigt...hab den Trick raus <)
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Sorry, muss leider noch nochmal nerfen:

Ich hab das Scanengine überhaupt nicht verändert, nur das Programm und die Ausgabe etwas gestaltet. Das Searchengine sieht so aus:

Code: Alles auswählen

Procedure Scan(Pfad$)
If ReadFile(0, "data\AKNL32.akl")  //Die Datei mit der Erkennungsliste
    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()                    //ZEILE 8
        If SL() = Entryname$ 
          PrintN("Fund! "+Entryname$)   //Die Funde werden in der Konsole ausgegeben - nur zum Test bis jetzt
        EndIf 
      Next 
      EndIf
    Wend
    FinishDirectory(EDID)
  EndIf 
EndProcedure
Aber immer bei Zeile 8 (siehe Code), stürzt das Programm ab und der Debugger meldet mir folgendes:

[ERROR]Invalid memory access (write error at adress 8 ).

Was hab ich jetzt schonwieder falsch gemacht? :freak:

DrNo
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Public func? VisualBasic?
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag von DrNo »

Falls du das auf meinen Vorletzten Beitrag beziehst...damit meine ich Global usw.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wo der IMA herkommt ist schwer zu sagen.
ein IMA wird fast nie dort verursacht, wo er auftritt.

irgendwo in deinem Programm, vor dem Aufruf, wird der Stack kaputtet,
und ausgerechnet bei dem Wend tritt er auf.
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 »

Fluid Byte hat geschrieben:Public func? VisualBasic?
Hab früher hin und wieder in einem Spiel (Clonk) gescriptet, das ähnlich wie VB aufgebaut ist:

Code: Alles auswählen

public func hit()
{
Explode(20, 30);
}

@ Kaeru_Gaman (ich kann dein Namen jetzt endlich auswendig schreiben 8-B )

Wie meinst du das und woran könnte das liegen?
Weil genau den Code hab ich davor ohne besondere GUI benutzt, da hats geklappt.

DrNo
Antworten