[gelöst] Datei beim Programmstart laden und auswerten

Anfängerfragen zum Programmieren mit PureBasic.
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

[gelöst] Datei beim Programmstart laden und auswerten

Beitrag von derschutzhund »

An welcher Stelle muss ich eine Routine einbauen damit sie beim Programmstart automatisch ausgeführt wird?
Zuletzt geändert von derschutzhund am 04.07.2013 18:44, insgesamt 1-mal geändert.
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
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

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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()
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
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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!
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag von RSBasic »

Wenn in der Prozedur "Open_Window_0()" auch die notwendigen Gadgets erstellt werden, dann ja.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Datei automatisch beim Programmstart laden und auswerten

Beitrag 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(...)
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Antworten