 |
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 |
SvenStueck
Anmeldungsdatum: 12.05.2005 Beiträge: 58
|
Verfasst am: 22.01.2007, 23:23 Titel: Text stückeln/in einzelne Werte aufteilen |
|
|
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
Bin ja der Meinung, dass es bei FB in Sachen String-Verarbeitung echt mau
in der Befehlsauswahl ausschaut
Habts ihr ne Ahnung, wie man des am besten lösen könnte? |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 23.01.2007, 01:56 Titel: |
|
|
Selber Moin , 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
-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 |
|
 |
SvenStueck
Anmeldungsdatum: 12.05.2005 Beiträge: 58
|
Verfasst am: 23.01.2007, 16:02 Titel: |
|
|
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  |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 23.01.2007, 16:45 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|