|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Muecke Gast
|
Verfasst am: 04.01.2014, 13:59 Titel: Seperator als SUB Spaichern |
|
|
Hallo miteinander,
das Programmiren fällt mir doch schwärme als gedacht
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 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: ~/
|
Verfasst am: 04.01.2014, 16:01 Titel: |
|
|
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 |
|
|
Muecke Gast
|
Verfasst am: 04.01.2014, 16:10 Titel: |
|
|
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: ~/
|
Verfasst am: 04.01.2014, 16:57 Titel: |
|
|
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 |
|
|
Muecke Gast
|
Verfasst am: 04.01.2014, 17:06 Titel: |
|
|
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: ~/
|
Verfasst am: 04.01.2014, 17:26 Titel: |
|
|
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 |
|
|
Muecke Gast
|
Verfasst am: 04.01.2014, 19:10 Titel: |
|
|
hmm dann verwechsle ich das mit php schade. |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 04.01.2014, 19:26 Titel: |
|
|
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 |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
Muecke Gast
|
Verfasst am: 05.01.2014, 12:05 Titel: |
|
|
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
Werde dafür jedoch ein Neuen Thema aufmachen denn das hat mit dem was ich hier Fragte nichts zu tun |
|
Nach oben |
|
|
|
|
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.
|
|