Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

einfach verkette List / Object

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
chutullu



Anmeldungsdatum: 18.10.2005
Beiträge: 77

BeitragVerfasst am: 07.12.2007, 06:24    Titel: einfach verkette List / Object Antworten mit Zitat

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.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Bimi



Anmeldungsdatum: 03.12.2007
Beiträge: 66

BeitragVerfasst am: 07.12.2007, 08:59    Titel: Antworten mit Zitat

t._list = t._list->_nxt

...wird nur bei der Ausgabe auf das nächste Listenelement gesetzt, nicht bei der Erzeugung/Ergänzung der Liste...

..ist ein Fehler von wahrschein mehreren zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz