Re: Residents file auslesen.
Verfasst: 01.02.2017 20:14
				
				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.NicTheQuick hat geschrieben:Verrückt, ich krieg hier unter Linux folgende Meldung (nach Anpassen der Pfade und Parameter natürlich):Klappt ja super.Code: Alles auswählen
STARTING 5.50 PureBasic 5.50 (Linux - x64) ERROR Can't load OS libraries, please re-install PureBasic.![]()
Na ich brauche es ja auch nicht, ich wollte nur mal gucken, ob es funktioniert.
[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