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:

Seperator als SUB Spaichern

 
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
Muecke
Gast





BeitragVerfasst am: 04.01.2014, 13:59    Titel: Seperator als SUB Spaichern Antworten mit Zitat

Hallo miteinander,

das Programmiren fällt mir doch schwärme als gedacht traurig
ich habe mir für mein vorhaben eine Kleine Hilfe gebastelt,
denn ich möchte immer zeilenweise aus einer CSV Datei Daten lesen und möchte das gerne dann in einem Arrey stehen habe lächeln dafür habe ich mir den Code unten zusammen gebaut.

Code:
Dim Strg              As String                  ' Hier ist der String drin
Dim Separator         As String                  ' Hier kommt das Trenzeichen rein
Dim As Integer i
Dim As Integer SeperatorAnzahl

Strg        = " Das, ist, ein, Test, mit, lauter, Separatoren "
Separator   = ","

' Leerzeichen am Anfang und Ende löschen
Strg        = LTrim(RTrim(Strg))

Print "String", Strg
Print "Seperator", Separator
Print ""

' Zählen wie viele Seperatoren im String vorkommen
Dim As Integer Start = 1
For SeperatorAnzahl = 1 To Len(Strg)
   Start = InStr(Start+1,Strg,Separator)
   If Start = 0 Then Exit For
Next

DIM AS String Array(1 To SeperatorAnzahl)                                  ' Arrey in der Größe definiren
   Do
      i = i + 1
      If instr(1,Strg,Separator)>0 Then
                Array(i)  =  Mid(Strg, 1, instr(1,Strg,Separator)-1)       ' Ergebniss in Arrey Speichern
         Strg = LTrim(Mid(Strg, instr(1,Strg,Separator)+1, Len(Strg)))     ' Ergebniss aus String Löschen
      Else
                Array(i)  =  Mid(Strg, 1, instr(1,Strg,Separator)-1)       ' Ergebniss in Arrey Speichern
         Exit Do                                                             ' Schleife abbrechen
      EndIf   
   Loop

' Arrey ausgeben um zu schauen was wirklich drin ist
For i = 1 To  UBOUND(Array)
   Print Array(i)
Next

Print ""
Print "Das Arrey hat eine Maximal Groesse von";UBOUND(Array);" Ebenen bekommen"

Sleep



jetzt würde ich den gerne in eine SUB packen,
jedoch bei der Übergabe der Daten (Strg, Separator, Arrey)
bei Arrey gerne den Namen des Arrey`s eingeben,
so das ich später mit dem Namen denn ich dort eingegeben habe weiterarbeiten kann, ich meine so was gab es im QBasic doch in den mal zwei $ verwendet hatte oder so was glaube ich, ich hoffe das Ihr mir in meinem Gedankengang folgen könnt und mir hier einen Tipp geben könnt wie ich das bewerkstelligt bekommen könnte.

ps. warum ich das machen möchte,
ich habe voraussichtlich auch zwei oder drei zielen miteinander zu vergleichen und dafür ist es dann Praktisch wenn ich hier verschiedene nahmen vergeben kann.
Nach oben
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 04.01.2014, 16:01    Titel: Antworten mit Zitat

Meinst du die Art und Weise, wie du ein Array an die SUB übergibst?
Code:
SUB explode(strg as string, delimiter as string, array() as string)
  ' ...
END SUB

explode meinString, ",", meinArray()


Oder meinst du etwas völlig anderes?
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muecke
Gast





BeitragVerfasst am: 04.01.2014, 16:10    Titel: Antworten mit Zitat

ich habe mir das so vorgestellt


Code:
explode meinString, ",", Zeile1()
explode meinString, ",", Zeile1()

Print Zeile1(1)
Print Zeile2(1)
...


die Frage ist nur wie muss ich das machen das der Name denn ich Zeile1 bzw. Zeile2 auch als Variablen Name verwendet wird?
Nach oben
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 04.01.2014, 16:57    Titel: Antworten mit Zitat

Hmm, ich weiß immer noch nicht so recht was du willst ...

Willst du den Inhalt von Zeile1 als Variable verwenden, also z. B.
Zeile1(1) = "Vorname"
Zeile1(2) = "Max"
gewünscht ist die Zuordnung Vorname = "Max"?
So etwas bekommst du leider nicht hin (ich wüsste auch nicht, dass das in QB ging; in PHP z. B. gibt es sowas). Dazu müsstest du dir eine eigene Funktion schreiben, die dir zum Schlüssel den zugehörigen Wert liefert. mdTypes bietet auch einen Datentyp für solche assoziativen Arrays. Meinst du so etwas?[/code]
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muecke
Gast





BeitragVerfasst am: 04.01.2014, 17:06    Titel: Antworten mit Zitat

ne wir reden aneinander vorbei.

Ok noch mal von vorne.

wenn ich den Code habe ' Das kennen alle
Code:

Variable  = "Max"
Print Variable   ' Ausgabe: Max

ich möchte jedoch
Code:

Variable = Name

Variable = "Max"
Print Name   ' Ausgabe: Max



ich meine das es im QB so ausgesehen hat.
Code:

Variable$  = "Max"
Print Variable$   ' Ausgabe: Max


Code:

Variable$ = Name

Variable$$ = "Max"
Print Name$   ' Ausgabe: Max


es ist nur schon so lange her, und ich bin mir nicht sicher ob ich nicht verschiedene sachen durcheinander bringe
Nach oben
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 04.01.2014, 17:26    Titel: Antworten mit Zitat

Nein, so etwas geht in FreeBASIC nicht, und ich kenne es auch nicht aus QB (wohl aber in ähnlicher Form aus PHP; da war das glaube ich auch mit den doppelten Dollarzeichen $$var). Solche Konstrukte lassen sich allerdings auch problemlos umgehen, ggf. durch assoziative Arrays.

edit: Variable Variablen, aber eben nicht für QB/FB
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muecke
Gast





BeitragVerfasst am: 04.01.2014, 19:10    Titel: Antworten mit Zitat

hmm dann verwechsle ich das mit php schade.
Nach oben
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 04.01.2014, 19:26    Titel: Antworten mit Zitat

Je nachdem, wie flexibel das Ganze wirklich sein muss, kannst du mit Pointern / Referenzen fast dasselbe erreichen. Also solange der Benutzer nicht den Variablennamen selbst festlegen können soll (wäre auch etwas kritisch), kannst du deine Variable als Pointer oder Referenz deklarieren und damit auf eine beliebige andere Variable zeigen lassen.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 04.01.2014, 20:13    Titel: String-Split-Routinen im FreeBASIC-Portal Antworten mit Zitat

Hallo,

schau mal hier in der Rubrik: http://www.freebasic-portal.de/code-beispiele/string-funktionen/

Da gibt es bereits mehrere fertige String-Split-Routinen, die einen String anhand eines Trennzeichens in ein Array zerlegen. So kann man sich die Implementierung aussuchen, die einem zusagt, und muss nicht das Rad erneut erfinden.

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Muecke
Gast





BeitragVerfasst am: 05.01.2014, 12:05    Titel: Antworten mit Zitat

das ist richtig hier gibt es schon viele schöne Beispiele, ich muss jedoch erst mal wider richtig in das programmieren rein kommen und die Befehle lernen, das ist finde ich echt Peinlich das ich so viel suchen und Fragen muss für das bisher wirklich sehr Mitkriege und simple Programm.

ich traue mich auch fast nicht zu fragen doch ich komme schon wider nicht weiter traurig
Werde dafür jedoch ein Neuen Thema aufmachen denn das hat mit dem was ich hier Fragte nichts zu tun lächeln
Nach oben
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