Seite 3 von 5

Verfasst: 10.06.2006 20:02
von remi_meier
Ok, der war einfach :) Hab nur vergessen, irgendwo den Typ zu setzen...
Ist gleich editiert (im ersten Post).

Verfasst: 10.06.2006 20:18
von edel
Danke.

Wenn ich mich ranhalte bin ich morgen oder Montag fertig ;-)

Verfasst: 11.06.2006 08:57
von edel
Kann das sein das SetFileString nicht mit 'carriage return' umgehen kann ?

Verfasst: 11.06.2006 10:17
von remi_meier
Jap, darf nur #LF$ vorkommen ->

Code: Alles auswählen

File.s = ReplaceString(File.s, #CR$, #LF$)
File.s = ReplaceString(File.s, #LF$+#LF$, #LF$)
wirds wohl tun. Hab diese Zeilen nicht eingebaut, da sie doch recht viel
Zeit benötigen, auch wenns nicht nötig wäre.

Verfasst: 16.06.2006 17:29
von remi_meier
Mikro-Bugfix
1E3 wurde nicht richtig erkannt...

Verfasst: 16.09.2006 18:28
von edel
Hi Remi,

ist es moeglich alle Leerzeichen stehen zu lassen,
oder die Startposition des Tokens zu bekommen ?

Verfasst: 16.09.2006 19:41
von remi_meier
Sollte möglich sein mit diesen Modifikationen (Tabs und Spaces werden
dann als #PBSC_OTHER einzeln zurückgegeben):

- Hinzufügen dieser 3 Zeilen am Anfang von _PBSC_GetNumber() direkt
nach den Variablendeklarationen:

Code: Alles auswählen

  If PeekC(@s) = ' ' Or PeekC(@s) = 9
    ProcedureReturn 0
  EndIf
- Entfernen aller _PBSC_Trim()s, führt zu dieser Prozedur:

Code: Alles auswählen

Procedure.s PBSC_GetNextToken(*this.cPBSC)
  Protected s0.s, Token.s, Len.l
  
  If *this\File And (*this\FileLine <= *this\FileMaxLine Or Len(*this\Line) <> 0)
    
    If *this\Line = ""
      _PBSC_SetTokenType(*this, #PBSC_NewLine)
      _PBSC_SetLastToken(*this, #LF$)
      
      s0 = _PBSC_ReadLine(*this)
      *this\Line = s0;_PBSC_Trim(*this, s0)
      
      If ( Not *this\Started) Or (*this\Started And *this\Line = "")
        ProcedureReturn #LF$
      Else
        *this\Started = #False
      EndIf
    EndIf
    
    Len = _PBSC_FindToken(*this.cPBSC, *this\Line)
    Token = Left(*this\Line, Len)
    
    *this\Line = Mid(*this\Line, FindString(*this\Line, Token, 1)+Len(Token), Len(*this\Line)-Len(Token));_PBSC_Trim(*this, Mid(*this\Line, FindString(*this\Line, Token, 1)+Len(Token), Len(*this\Line)-Len(Token)))
    
    ProcedureReturn Token;_PBSC_Trim(*this, Token)
  Else
    ProcedureReturn ""
  EndIf
EndProcedure
Hab es aber nicht gross getestet. Die Startposition zu erfahren wäre etwas
kompliziert.

greetz
Remi

Verfasst: 18.09.2006 01:21
von edel
Oups , fast vergessen mich zu bedanken :D

Danke.

Bis auf einen Fehler mit den Konstanten (den ich jetzt hoffentlich
draussen habe), klappt das sehr gut. :allright:

Verfasst: 11.12.2006 10:50
von Didelphodon
@remi: Danke für Deine hervorragende Arbeit, ich kann das Teil echt super für meine PBE-Agenden gebrauchen! :D

Verfasst: 23.12.2007 01:57
von inc.
Bug Report:

in der Prozedur "_PBSC_GetIdentifier" , welche die Konstanten & Pointer erkennt fehlen die Identifier "width", "includefile" und "xincludefile".

Fehler bei folgendem Code:

Code: Alles auswählen

Macro __VERTEXFLAGS(__Texnum) 
  If(VertexBufferType & #GRAPH_VB_TEXTURE_COORDINATES_#__Texnum) 
    VertexSize + 8 ;2*FLOAT 
  EndIf 
EndMacro
Hier wird

"#GRAPH_VB_TEXTURE_COORDINATES_#__Texnum"

in ...

"#GRAPH_VB_TEXTURE_COORDINATES_"
"#"
"__Texnum"

aufgeteilt.