Seite 1 von 1

[gelöst] Datei beim Programmstart laden und auswerten

Verfasst: 29.06.2013 00:11
von derschutzhund
An welcher Stelle muss ich eine Routine einbauen damit sie beim Programmstart automatisch ausgeführt wird?

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 00:18
von ts-soft
Der Compiler arbeitet von oben nach unten. Der erste Befehl auf den er trifft (damit sind keine Deklarationen oder
Proceduren gemeint), der wird beim start ausgeführt.

Code: Alles auswählen

Procedure LoadPreferences()
  ; ...
EndProcedure

LoadPreferences()

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 13:28
von derschutzhund
Der Compiler arbeitet von oben nach unten.
Ok, das ist klar!
Vielleicht muss ich es noch etwas genauer beschreiben:
Ich möchte beim Programmstart Werte aus einer Textliste in eine Liste lesen und dann daraus bestimmte Werte in Textfelder oder Auswahlfelder in der Form übertragen.

Die Procedure zum lesen der Textdatei darf also doch erst starten wenn die Form komplett aufgebaut ist oder?

LG

Wolfgang

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 13:50
von RSBasic
Du kannst auch vor dem Initialisieren deines Fensters deine Datei laden. Es hat erstmal damit nichts zu tun. Wenn du beispielsweise den Inhalt der Datei, die du geladen hast, in einen EditorGadget einfügen möchtest, dann kannst du es natürlich erst machen, wenn dein Fenster und Gadgets erstellt wurden. Aber das Laden der Datei kannst du schon vorher erledigen.

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 14:04
von derschutzhund
RSBasic hat geschrieben:Du kannst auch vor dem Initialisieren deines Fensters deine Datei laden. Es hat erstmal damit nichts zu tun. Wenn du beispielsweise den Inhalt der Datei, die du geladen hast, in einen EditorGadget einfügen möchtest, dann kannst du es natürlich erst machen, wenn dein Fenster und Gadgets erstellt wurden. Aber das Laden der Datei kannst du schon vorher erledigen.
Ok, das hatte ich doch gemeint!
Also an welcher Stelle ist das Fenster und die Gadgets komplett aufgebaut um die Werte einzutragen?
An dieser Stelle würde ich dann am liebsten eine Procedure einbauen welche sowohl die Datei liest als auch den Rest erledigt!

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 14:13
von RSBasic
Da du ja kein Beispielcode gepostet hast, kann ich dir nur mit meinem Beispielcode zeigen:

Code: Alles auswählen

EnableExplicit

Define EventID
Global FileContent$ = "Standardinhalt, wenn die Datei nicht geladen werden konnte."

Procedure LoadFileContent(File$)
  If ReadFile(1, File$, 0)
    FileContent$ = ReadString(1, 0)
    
    CloseFile(1)
  EndIf
  
EndProcedure

Procedure InsertFileContent(Gadget)
  SetGadgetText(Gadget, FileContent$)
EndProcedure

;Datei laden
LoadFileContent("DeineDatei.txt")

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  EditorGadget(1, 0, 0, WindowWidth(0), WindowHeight(0), 0)
  
  ;Inhalt einfügen
  InsertFileContent(1)
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 14:34
von derschutzhund
Das hilft mir schon gut weiter.

Die Stelle ist also nach: "If WindowID(#Window_0)"

Code: Alles auswählen

Procedure Main()

  Open_Window_0()
  
  If WindowID(#Window_0)
         --- hier sollte alles komplett aufgebaut sein ----    
    Repeat
    
      Select WaitWindowEvent()
      
        Case #PB_Event_Menu
          MyEventMenu(EventMenu())
        Case #PB_Event_Gadget
  .........
LG

Wolfgang

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 14:37
von RSBasic
Wenn in der Prozedur "Open_Window_0()" auch die notwendigen Gadgets erstellt werden, dann ja.

Re: Datei automatisch beim Programmstart laden und auswerten

Verfasst: 29.06.2013 19:30
von Sicro
Du kannst ab dem Zeitpunkt, wo du dein benötigtes Gadget erstellt hast, mit Daten füttern.

Code: Alles auswählen

OpenWindow(...)
  EditorGadget(...)
  ; Ab hier kann das EditorGadget mit Daten gefüttert werden
  ButtonGadget(...)