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:

Text stückeln/in einzelne Werte aufteilen

 
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
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 22.01.2007, 23:23    Titel: Text stückeln/in einzelne Werte aufteilen Antworten mit Zitat

Moin!

Habe folgenden Text:

11 (23) ARAFURA RESOURCES 0,460 +4,55 % 39
12 (9) VEDRON GOLD INC. 0,320 +14,29 % 38
13 (29) MICRON ENVIRO SYS 0,049 -2,00 % 37
14 (14) MAXIMUS VEN. 0,260 +20,93 % 33
15 NEU! SANGUI BIOTECH IN 0,170 +12,58 % 31
16 NEU! CENTREX INC. REGI 0,0014 +7,69 % 28
17 (21) ORIENTAL MINERALS 0,97 +1,04 % 27
18 (22) IFEX INNOVAT.FIN. 0,099 +4,21 % 25

Ist eine Rangliste, die aus einer Datei gelesen wird.
Die einzelnen Werte:
1. Aktuelle Platzierung
2. Platz vom Vortag
3. Aktienname
4. Kurs
5. Veränderung in Prozent
6. ist unwichtig!

Tüftele jetzt schon ewig rum, wie man die einzelnen Werte mit so
wenig Code, wie möglich in Variablen speichern kann mit dem Kopf durch die Mauer wollen

Bin ja der Meinung, dass es bei FB in Sachen String-Verarbeitung echt mau
in der Befehlsauswahl ausschaut missbilligen

Habts ihr ne Ahnung, wie man des am besten lösen könnte?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 23.01.2007, 01:56    Titel: Antworten mit Zitat

Selber Moin grinsen,
SvenStueck hat Folgendes geschrieben:
Tüftele jetzt schon ewig rum, wie man die einzelnen Werte mit so
wenig Code, wie möglich in Variablen speichern kann mit dem Kopf durch die Mauer wollen
Es ist löblich, 'mit so wenig Code, wie möglich' ein Ziel zu erreichen, aber es gibt dabei einiges zu berücksichtigen:
(Nein, nicht jedesmal ein Pflichtenheft erstellen lächeln
-Erstma muß das Programm laufen
-Dann sollte es optimiert werden
-Und zuletzt nuß es dokumentiert werden..
Im englischen Forum gibt es eine Lib mit zusätzlichen FB-String-Funktionen
(da ist auch eine Split- und eine Join-Funktion drin)
Bei deiner Datenstruktur hilft das wenig, auf den ersten Blick sage ich mal,
daß du bei Chr(32) trennen kannst, außer beim Aktiennamen, aber da danach der Kurs kommt, kannst du ja bis zum ',' lesen, bis zum nächsten Leerzeichen zurückgehen und so weiter..
..nur mal sone Idee, von 'am besten' weit entfernt oder?
btw:
Auch ein 100-m-Weltrekordler fängt 'langsam' an..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
SvenStueck



Anmeldungsdatum: 12.05.2005
Beiträge: 58

BeitragVerfasst am: 23.01.2007, 16:02    Titel: Antworten mit Zitat

Also bis jetzt hab ich immerhin folgendes:

Code:

DIM tmp(10) AS STRING

OPEN "test.txt" FOR INPUT AS #1
'DO
    LINE INPUT #1, i$
    i$= TRIM(i$," ")
    PRINT i$
   
    t=0:z=0
    DO
        t+=1:z+=1
        a=INSTR(t,i$," ")
        tmp(z)=TRIM(MID$(i$,t,a-t),ANY " ()%")
        MID$(tmp(z),INSTR(tmp(z),","),1)="."
        PRINT tmp(z),val(tmp(z)),STR(tmp(z))
        t=a
    LOOP UNTIL a=0
   
'LOOP UNTIL EOF(1)
CLOSE #1
SLEEP
END


Aber das ist ja auch schon ein ewiger Flickenteppich missbilligen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 23.01.2007, 16:33    Titel: Antworten mit Zitat

Thread aus dem QBasic-Forenbereich, aber alles dort Diskutierte 1:1 auch in FreeBasic anwendbar, insbesondere wenn FreeBasic auch immer noch keine split()-Funktion kennt:

http://forum.qbasic.at/viewtopic.php?t=3626

Und natürlich das Beispielprogramm, vermutlich ohne Probleme in FreeBasic 1:1 portierbar:

http://beilagen.dreael.ch/QB/SPLIT.BAS
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 23.01.2007, 16:45    Titel: Antworten mit Zitat

Hi,
so geht es auf alle Fälle..
Code:
Option Explicit 'immer wieder git und wichtig, ist in 0.17 Standard..
   '+------------------------------------------------------------------------------------------+
   '|   Header: Bestimmen der Übergabeparameter'                                               |
   '|           AnzeigeCheck:|Il1 sind Alt-0124, Großes i, kleines L, Eins „ä”ö?üáߎę֚Üñ±¸©ø°|
  Const Author="Trennen.Bas v016bSE ©2007 by ytwinky, MD"'                                    |
   '|           (Tastenkombination: keine)                                                     |
   '|                                                                                          |
   '|   Zweck : Schablone für neue Dateien                                                     |
   '+------------------------------------------------------------------------------------------+
Dim As String s, AktPlatz, PlatzVor, AktName, Kurs, Prozent, unwichtig
Dim As Long i, j, k
For k=1 To 8
  Cls
  Read s
  i=Instr(s, " ")
  AktPlatz=Left(s, i-1)
  ?"1. Aktuelle Platzierung:" &AktPlatz
  j=Instr(i+1, s, " ")
  PlatzVor=Mid(s, i+1, j-i)
  ?"2. Platz vom Vortag:" &PlatzVor
  j+=1
  i=Instr(j+1, s, ",")
  Do
    If s[i]<>32 Then i-=1
  Loop Until s[i]=32
  AktName=Mid(s, j, i-j+1)
  ?"3. Aktienname:" &AktName
  i+=1
  j=Instr(i+1, s, " ")
  Kurs=Mid(s, i+1, j-i)
  ?"4. Kurs:" &Kurs
  j+=1
  i=Instr(j+1, s, "%")+1
  Prozent=Mid(s, j, i-j)
  ?"5. Veränderung in Prozent:" &Prozent
'  unwichtig=Mid(s, Instr(s, "%")+2)
'  ?"6. ist unwichtig!:" &unwichtig
  ?*IIf(k=8, @"Eniki..", @"Weiter..");
  Sleep
Next
Data "11 (23) ARAFURA RESOURCES 0,460 +4,55 % 39"
Data "12 (9) VEDRON GOLD INC. 0,320 +14,29 % 38"
Data "13 (29) MICRON ENVIRO SYS 0,049 -2,00 % 37"
Data "14 (14) MAXIMUS VEN. 0,260 +20,93 % 33"
Data "15 NEU! SANGUI BIOTECH IN 0,170 +12,58 % 31"
Data "16 NEU! CENTREX INC. REGI 0,0014 +7,69 % 28"
Data "17 (21) ORIENTAL MINERALS 0,97 +1,04 % 27"
Data "18 (22) IFEX INNOVAT.FIN. 0,099 +4,21 % 25"
..das mit der Datei kannste ja selber reinbasteln..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
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