Proceduren suchen Listen ?

Anfängerfragen zum Programmieren mit PureBasic.
dater
Beiträge: 43
Registriert: 14.01.2006 15:22

Proceduren suchen !

Beitrag von dater »

Hi,
erst mal Danke für eure Antworten.
Ich will einen PDF-Creater schreiben. Es soll von einer Textdatei die Kommandos eingelsen werden, und entsprechend ein PDF erstellt werden.

z.B.

PDFCreate(A4)
Print,10,10,Hallo
DrawBox,10,10,100,100,rgb(100,200,0)
u.s.w.

Ich wollte die Proceduren so schreiben das sie direkt mit CallFunctionFast
aufgerufen werden. Da es sehr viele Procdeuren werden, wollte ich ein wenig, durch eine art Parser die sache 'Automatisieren' um etwas Tip-Arbeit zu sparen !

Dater.
Benutzeravatar
Franky
Beiträge: 1132
Registriert: 29.08.2004 16:31
Wohnort: Münsterland
Kontaktdaten:

Beitrag von Franky »

Kaeru Gaman hat geschrieben:wenn ein alter Hase wie edel im zweiten posting dieses threads schreibt "geht nicht",
dann....
Heißt das, dass ein Alter Hase wie Edel noch keine Möglichkeit dazu gefunden hat, sonst hätte er ja einen Grund angeführt :D

Aber du darfst natürlich gerne weiter dran glauben, dass die Weltweite Nachfrage an Fahrzeugen 10 Millionen nicht übersteigen wird. Hat ja immerhin auch ein Alter Hase wie Karl Benz behauptet ;)

Nun denn:

Code: Alles auswählen

Structure func
      name.s
      adr.l
EndStructure
Global menge.l
Global NewList Funktion.func()
Restore funcmenge
Read menge
Restore funcadr
For a=1 To menge 
      AddElement(Funktion())
            Read Funktion()\adr
Next
Restore funcname
FirstElement(Funktion())
For a=1 To Menge
     Read Funktion()\name
     Debug Funktion()\name
     NextElement(Funktion())
Next 
OpenConsole()
Repeat
   string.s=UCase(Input())
   Debug string
  ForEach Funktion()
          If string=Funktion()\name
                CallFunctionFast(Funktion()\adr)
                Break
          EndIf
  Next 
Until string="END"

Procedure Nachricht()
      MessageRequester("Nachricht","Bitte geben sie nicht mehr 'Nachricht' ein, denn dieses Fenster ist zu faul, sich immer und immer wieder zu öffnen")
EndProcedure

Procedure PureBoard()
      RunProgram("http://pure-board.de")
EndProcedure

Procedure Commander()
     RunProgram("cmd")
EndProcedure
  
DataSection
funcmenge:
Data.l 3
funcadr:
Data.l @Nachricht(),@PureBoard(),@Commander()
funcname:
Data.s "NACHRICHT","PUREBOARD","COMMANDER"
EndDataSection

EndDataSection


Hier mal eine primitive Version eines solchen Programmes.

Die DataSection kannst du über ein Automatisches Programm erstellen lassen, das deinen Quelltext durchsucht und bei "Procedure" anschlägt.

Wenn du schon nen PDF-Creater schreiben willst, wirste das sicher hinkriegen ;)
Falsch zugeordnetes Zitat des Tages: "O'zapft is" - Edward Snowden :)
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Es gibt aber einfach Sachen die sind sinnlos. Wenn ich doch weiss
wie meine Funktionen heissen, muss ich sie doch nicht speichern,
geschweige denn suchen.
Little John

Beitrag von Little John »

Ich verstehe auch nicht was das bringen soll ... außer die Chance für Bugs zu vergrößern, und die Wartbarkeit des Programms zu verschlechtern.

Gruß, Little John
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Ich hoffe ich habe es richtig verstanden. Vielleicht einfach alle Procedures in
ProcedureDLL umwandeln, eine DLL compilieren und dann mit ts-soft's tool
durchlaufen lassen. Danach kann man den Quelltext nutzen bzw. anpassen.

http://www.realsource.de/tmp/DLL2PBLib.zip

Wenn dieses nicht das Richtige ist, vergessen wir diesen Eintrag :mrgreen:

Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Proceduren suchen !

Beitrag von Kaeru Gaman »

dater hat geschrieben:Hi,
erst mal Danke für eure Antworten.
Ich will einen PDF-Creater schreiben. Es soll von einer Textdatei die Kommandos eingelsen werden, und entsprechend ein PDF erstellt werden.

z.B.

PDFCreate(A4)
Print,10,10,Hallo
DrawBox,10,10,100,100,rgb(100,200,0)
u.s.w.

Ich wollte die Proceduren so schreiben das sie direkt mit CallFunctionFast
aufgerufen werden. Da es sehr viele Procdeuren werden, wollte ich ein wenig, durch eine art Parser die sache 'Automatisieren' um etwas Tip-Arbeit zu sparen !

Dater.
aber das hat doch nicht das geringste damit zu tun, dass eine exe ihre eigenen proceduren ausliest.
wenn du auf die tour nen PDF-creator schreiben willst, dann schreib dir nen Parser/Interpreter.
das ist das was du eigentlich haben willst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

edel hat geschrieben:Die Methode von AND51 kann gar nicht gehen, da PB es voellig egal ist ob da Procedure oder ProcedureDLL steht. Solange es nicht als DLL kompiliertwird, wird man da auch nichts auslesen koennen.
Ah, vielen Dank für diese Information!
Kaeru Gaman hat geschrieben:dann hab ich halt nicht richtig hingesehen...
Vorschlag: Strich drunter, Schwamm drüber?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja is schon ok... wir kommen doch immer wieder klar...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten