Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Student25
Anmeldungsdatum: 31.05.2005 Beiträge: 2
|
Verfasst am: 31.05.2005, 15:16 Titel: unbekannte Anzahl an Datensätzen einlesen und spez.sortieren |
|
|
Hi, folgendes ich habe eine Datei mit einer unbekannten Anzahl an Datensätzen welche ich einlesen und nach bestimmten kriterien vergleichen und zählen muss. bisher bin ich wie folgt vorgegangen:
open "blabla.dat" for Random as 1 len = len(x)
for i = 1 to lof(1) / len(x)
get 1, i, x
..
..
..
next i
das funktioniert aber bei den Datensätzen nicht der Zählt totalen müll
vorgehensweise:
type a
b as single
c as integer
durchmesser as single
next type
dim e as a
open "blabla.dat" for random as 1 len = len(e)
for i = 1 to lof(1) / len(e)
get 1, i, e
if e.durchmesser < 10 then u = u + 1
if e.durchmesser > 10 and e.d < 20 then z = z + 1
......
next i
ausgabe der Anzahl, nach den kriterien sortierten durchmessern) u , z, ...
Ich hoffe ihr könnt mir helfen
-----------------------------------------------------------
Rechteischrehbfler snid besbaithcigt und dnieen der allgeiemenn Bleustuigng |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Student25
Anmeldungsdatum: 31.05.2005 Beiträge: 2
|
Verfasst am: 31.05.2005, 20:10 Titel: |
|
|
War eine gute idee ich habs hinbekommen mein Programm sieht jetzt folgendermaßen aus:
CLS
TYPE bohrer
Kennummer AS INTEGER
laenge AS SINGLE
durchmesser AS SINGLE
END TYPE
DIM bo AS bohrer
OPEN "bohrer.dat" FOR RANDOM AS #1
===================================
n = 0
DO UNTIL EOF(1)
GET #1, , bo
n = n + 1
IF EOF(1) THEN EXIT DO
LOOP
====================================
u = 0
z = 0
ue = 0
FOR i = 1 TO (n - 1) ' Zaelt in der Schleife immer eine Zeile zuviel
GET #1, i, bo
IF bo.durchmesser < 10 THEN u = u + 1
IF bo.durchmesser < 20 AND bo.durchmesser > 10 THEN z = z + 1
IF bo.durchmesser > 20 THEN ue = ue + 1
NEXT i
PRINT "Die Anzahl der bohrer mit dem durchmesser unter 10 ist "; u
PRINT "Die Anzahl der Bohrer mit dem Durchmessern zwischen 10 und 20 lautet "; z
PRINT "Die Anzahl der Bohrer mit dem Durchmesser über 20 ist "; ue
PRINT ; n
END
Ich habe deinen Vorschlag nicht hundertprozentik angenommen weil ich den sinn, die bedeutung, den befehl ---- LTRIM$(STR$(c&)) ----- überhaupt nicht verstanden hab wieso nicht einfach c& ? nur so aus interesse
Dank die Sebastian
==========================================
Rechteischrehbfler snid besbaithcigt und dnieen der allgeiemenn Bleustuigng |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 31.05.2005, 20:18 Titel: |
|
|
Hallo.
Zitat: | Ich habe deinen Vorschlag nicht hundertprozentik angenommen weil ich den sinn, die bedeutung, den befehl ---- LTRIM$(STR$(c&)) ----- überhaupt nicht verstanden hab wieso nicht einfach c& ? nur so aus interesse |
Also, das hat folgenden Grund: Wenn du eine Zahl mit PRINT insbesondere hinter einen Text ausgibst (PRINT "Zahl: "; zahl%), dann steht vor der Zahl immer mind. 1 störendes Leerzeichen. Damit wirklich nur die Zahl angezeigt wird, wird durch STR$() die Zahl erst mal in eine Zeichenkette geschrieben und anschließend werden überflüssige Leerzeichen abgeschnitten. LTRIM$(STR$()) Leerzeichen kann man nur bei Zeichenketten entfernen. Daher diese Umwandlung. Das ist aber nur eine Feinheit und ist für die Funktionstüchtigkeit des Programms völlig egal.
Zitat: | Dank die Sebastian |
Kein Problem.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
|