mein kleiner "lib searcher" zum library searching

Anfängerfragen zum Programmieren mit PureBasic.
IcedCoffee
Beiträge: 115
Registriert: 09.07.2005 12:11
Wohnort: Fürstenwald [Internat], Berlin[wen keine lust auf Internat], Wildau[Einfamilienhaus]
Kontaktdaten:

mein kleiner "lib searcher" zum library searching

Beitrag von IcedCoffee »

moin

ich brauche eine funktion die ich bis jetzt nur in php gefunden habe
kein prob eigentilich da bei php die funktionen alle in *.dll's sind
so jetzt frage ich mich aber in welcher *.dll meine funktion ist

also habe ich einen "lib searcher" programmiert
der geht aber irgent wie nicht da er scheinbar nix macht also eigentlich müsste mindesten einmal ein MessageRequester() öffnen aber das passirt nicht

Code: Alles auswählen

exit.b = 0
libnr.l = 0
Repeat
  If ExamineDirectory(0, "E:\Suchmachine\ext", "*.dll")
    If NextDirectoryEntry() = 1
      OpenLibrary(libnr, DirectoryEntryName())
       If IsFunction(libnr, "parse_url") ; http://www.php.net/manual/de/function.parse-url.php
        MessageRequester("lib searcher", "die funktion ist in der lib"+Chr(10)+Chr(10)+DirectoryEntryName())
        exit = 1
       EndIf
    ElseIf NextDirectoryEntry() = 0
      exit = 1
    EndIf
  Else
    exit = 1
  EndIf
  libnr = libnr +1
Until exit = 1
MessageRequester("lib searcher", "The End")
weiss einer warum?

ps: die funktion die ich suche heisst bei php parse_url
IcedCoffee
Beiträge: 115
Registriert: 09.07.2005 12:11
Wohnort: Fürstenwald [Internat], Berlin[wen keine lust auf Internat], Wildau[Einfamilienhaus]
Kontaktdaten:

Beitrag von IcedCoffee »

weiss keiner eine lösung?
oder kan mir keiner eine alternative zu der funktion "parse_url" sagen?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

doch ich weiß glaub ich eine.
dein programm führt nach jedem schleifendurchlauf erneut examinedirectory aus d.h. es fängt jedes mal von vorne an und sucht in der 1. dll nach dem befehl wenn es den nicht findet sucht es erneut in der 1. dll.

Code: Alles auswählen

exit.b = 0
libnr.l = 0
If ExamineDirectory(0, "E:\Suchmachine\ext", "*.dll")
  Repeat
    If NextDirectoryEntry() = 1
      OpenLibrary(libnr, DirectoryEntryName())
      If IsFunction(libnr, "parse_url") ; http://www.php.net/manual/de/function.parse-url.php
        MessageRequester("lib searcher", "die funktion ist in der lib"+Chr(10)+Chr(10)+DirectoryEntryName())
        exit = 1
      EndIf
      libnr = libnr +1
    ElseIf NextDirectoryEntry() = 0
      exit = 1
    EndIf
  Until exit = 1
EndIf
MessageRequester("lib searcher", "The End")
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
IcedCoffee
Beiträge: 115
Registriert: 09.07.2005 12:11
Wohnort: Fürstenwald [Internat], Berlin[wen keine lust auf Internat], Wildau[Einfamilienhaus]
Kontaktdaten:

Beitrag von IcedCoffee »

kan sein
aber ich habe jetzt einen anderen fehler gefunden
- PB kan nicht mehr als 11 libs öffnen bzw. darf der lib name nicht höher als 10 sein
weil bei dem code beendet sich das prog einfach

Code: Alles auswählen

exit.b = 0
libnr.l = 0
If ExamineDirectory(0, "E:\Suchmachine\ext", "*.dll")
  Repeat
    DirectoryEntry = NextDirectoryEntry()
    If DirectoryEntry = 1
      OpenLibrary(libnr, DirectoryEntryName())
      If IsFunction(libnr, "parse_url") ; http://www.php.net/manual/de/function.parse-url.php
        MessageRequester("lib searcher", "die funktion ist in der lib"+Chr(10)+Chr(10)+DirectoryEntryName())
        exit = 1
      Else
        MessageRequester("lib searcher", "die funktion ist NICHT in der lib"+Chr(10)+Chr(10)+DirectoryEntryName()+Chr(10)+"Libery Nr.: "+Str(libnr))
      EndIf
      CloseLibrary(libnr)
      libnr = libnr + 1
    EndIf
    If DirectoryEntry = 0
      exit = 1
    EndIf
  Until exit = 1
EndIf
MessageRequester("lib searcher", "The End")
aber bei dem code nicht

Code: Alles auswählen

exit.b = 0
libnr.l = 0
If ExamineDirectory(0, "E:\Suchmachine\ext", "*.dll")
  Repeat
    DirectoryEntry = NextDirectoryEntry()
    If DirectoryEntry = 1
      OpenLibrary(0, DirectoryEntryName())
      libnr = libnr +1
      If IsFunction(0, "parse_url") ; http://www.php.net/manual/de/function.parse-url.php
        MessageRequester("lib searcher", "die funktion IST IN DER LIB"+Chr(10)+Chr(10)+DirectoryEntryName()+Chr(10)+"Libery Nr.: "+Str(libnr))
        exit = 1
      Else
        MessageRequester("lib searcher", "die funktion ist NICHT in der lib"+Chr(10)+Chr(10)+DirectoryEntryName()+Chr(10)+"Libery Nr.: "+Str(libnr))
      EndIf
      CloseLibrary(0)
    EndIf
    If DirectoryEntry = 0
      exit = 1
    EndIf
  Until exit = 1
EndIf
MessageRequester("lib searcher", "The End")
naja der ergebniss ist das ich 60DLLs durch sucht habe aber nirgent wo meine funktion drinne ist *scheisse*
IcedCoffee
Beiträge: 115
Registriert: 09.07.2005 12:11
Wohnort: Fürstenwald [Internat], Berlin[wen keine lust auf Internat], Wildau[Einfamilienhaus]
Kontaktdaten:

Beitrag von IcedCoffee »

hää?

irgentwie geht das alles nicht so wie es soll
weil ich habe mir jetzt noch einen Functions Counter eingebaut aber der geht irgent wie nicht
also er geht schon aber nicht bei meinen php dll's [bei anderen dlls geht er aber]

weiss einer warum?
weil dll ist ja dll also müsste je doch bei php dll's genau so gehen wie bei anderen
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 dll ist ja dll also müsste je doch bei php dll's genau so gehen wie bei anderen
o_O, das glaub ich aber weniger.

Hab mir den Code zwar nicht so genau angeschaut, aber warum nimmste nicht #PB_Any also dynamische Nummern?
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
IcedCoffee
Beiträge: 115
Registriert: 09.07.2005 12:11
Wohnort: Fürstenwald [Internat], Berlin[wen keine lust auf Internat], Wildau[Einfamilienhaus]
Kontaktdaten:

Beitrag von IcedCoffee »

weil ich anfangs eigentlich nur wissen wollte welche lib ich in Openlibrary() in meinem anderen program öffnen muss/will

also wollte ich das ding nur mal kurz in 5min fertig haben und einmal ausfüren

also habe ich mir auch nicht so die gedanken darum gemacht weil es eigentlich nur ein 5min prog werden sollte [jetzt sind es schon 2 tage *scheisse*]
Antworten