chutullu
Anmeldungsdatum: 18.10.2005 Beiträge: 77
|
Verfasst am: 07.12.2007, 06:24 Titel: einfach verkette List / Object |
|
|
Hallo Forum,
arbeite an einem "SplitString" mit Zeigern in Objectform. Der Code wird fehlerfrei mit der aktuellsten Compilerversion übersetzt, bringt jedoch nicht das erwartete Ergebnis.
Sieht jemand den Fehler ?
Code: | Type st
Strings As String
_nxt As st Ptr
End Type
Type StrSplit
Version As Double
split As String
seperator As String * 1
length As Integer
_list As st Ptr
Declare Constructor ()
Declare Sub SplitIt ()
Declare Function _create_list () As st Ptr
Declare Function _add_String (ByVal as st Ptr,ByVal As String) As st Ptr
End Type
Constructor StrSplit ()
this.Version = 0.1
this.length = 1
End Constructor
Sub StrSplit.SplitIt ()
Dim outp As st Ptr
Dim first As st Ptr
Dim a As Short
Dim char As String * 1
Dim dummy As String
first = this._create_list ()
this._list = first
outp = first
this.split += this.seperator
For a = 0 To Len(this.split)
char = this.split[a]
If char = this.seperator Then
outp = this._add_String(outp,dummy)
dummy = ""
Else
dummy += char
EndIf
Next a
outp = this._add_String(outp,dummy)
End Sub
Function StrSplit._create_list () As st Ptr
Dim dummy As st Ptr
dummy = Callocate (SizeOf (st))
dummy->Strings = ""
dummy->_nxt = 0
Return dummy
End Function
Function StrSplit._add_String (ByVal liste As st Ptr,ByVal stri as String) As st Ptr
liste->Strings = stri
liste->_nxt = this._create_list()
Return liste
End Function
Dim t As StrSplit
t.split = "123,2343223,2345,234234"
t.seperator = ","
t.SplitIt
While (t._list->_nxt <> 0)
Print t._list->Strings + "..."
t._list = t._list->_nxt
Wend
Sleep |
Für hilfreiche Antworten vielen Dank. |
|