Residents file auslesen.

Für allgemeine Fragen zur Programmierung mit PureBasic.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Residents file auslesen.

Beitrag von DarkDragon »

NicTheQuick hat geschrieben:Verrückt, ich krieg hier unter Linux folgende Meldung (nach Anpassen der Pfade und Parameter natürlich):

Code: Alles auswählen

STARTING	5.50	PureBasic 5.50 (Linux - x64)
ERROR	Can't load OS libraries, please re-install PureBasic.
Klappt ja super. :lol:
Na ich brauche es ja auch nicht, ich wollte nur mal gucken, ob es funktioniert.
Das hab ich letztens auch mal gehabt. Kann es sein, dass deine PUREBASIC_HOME variable nicht gesetzt ist oder sowas? Mit der IDE konnte ich kompilieren, mit dem Terminal nicht. Das checkinstall script meinte alles wäre ok.

[EDIT]

Das funktioniert bei mir einwandfrei, allerdings kommt der Fehler mit den OS Libraries auch ohne SetEnvironmentVariable bei mir nichtmehr, weil ich sie im bashrc oder profile stehen hab.

Code: Alles auswählen

; Original von ts-soft, modifiziert von DarkDragon
EnableExplicit

SetEnvironmentVariable("PUREBASIC_HOME", #PB_Compiler_Home)

Structure strucMember
  Name.s
  List Members.s()
EndStructure

Structure strucName
  List Name.strucMember()
EndStructure

Procedure GetStructures(*p.strucName)
  Protected.i Compiler = RunProgram(#PB_Compiler_Home + "compilers/pbcompiler", "--standby", "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Write | #PB_Program_Hide)
  Protected.s tmp, Text
  
  If Compiler
    If IsProgram(Compiler)
      Repeat
        tmp = ReadProgramString(compiler)
        Debug tmp
      Until tmp = "READY"
      WriteProgramStringN(Compiler, "STRUCTURELIST")
      Repeat
        Text = ReadProgramString(Compiler)
        If Text <> "OUTPUT" + #TAB$ + "COMPLETE"
          AddElement(*p\Name())
          *p\Name()\Name = Text
        EndIf
      Until Text = "OUTPUT" + #TAB$ + "COMPLETE"
      FirstElement(*p\Name())
      DeleteElement(*p\Name())
      ForEach *p\Name()
        WriteProgramStringN(Compiler, "STRUCTURE" + #TAB$ + *p\Name()\Name)
        Repeat
          Text = ReadProgramString(Compiler)
          If Text <> "OUTPUT" + #TAB$ + "COMPLETE"
            AddElement(*p\Name()\Members())
            *p\Name()\Members() = Text
          EndIf
        Until Text = "OUTPUT" + #TAB$ + "COMPLETE"        
      Next
      WriteProgramStringN(Compiler, "END")
      CloseProgram(Compiler)
    EndIf
  EndIf 
EndProcedure

Define.strucName structs
GetStructures(@structs)
With structs
  ForEach \Name()
    Debug "Structure " + \Name()\Name
    ForEach \Name()\Members()
      Debug "   " + \Name()\Members()
    Next
    Debug "EndStructure"
    Debug ""
  Next
EndWith
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten