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:

unbekannte Anzahl an Datensätzen einlesen und spez.sortieren

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Student25



Anmeldungsdatum: 31.05.2005
Beiträge: 2

BeitragVerfasst am: 31.05.2005, 15:16    Titel: unbekannte Anzahl an Datensätzen einlesen und spez.sortieren Antworten mit Zitat

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 mit dem Kopf durch die Mauer wollen

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 31.05.2005, 17:02    Titel: Antworten mit Zitat

Hallo.

Mach's doch einfach so:

Code:
OPEN "Daten.dat" FOR BINARY AS #1
c&=0
DO UNTIL EOF(1)
 GET #1, , Datensatz
 c&=c&+1
 Print "Nr. ";LTRIM$(STR$(c&)); " => "; Datensatz.Irgendwas
 Sleep
 IF EOF(1) THEN EXIT DO
LOOP
CLOSE #1
Print "Fertig. Die Datei hatte "; LTRIM$(STR$(c&)); " Zeilen!"
Sleep


Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | 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
Student25



Anmeldungsdatum: 31.05.2005
Beiträge: 2

BeitragVerfasst am: 31.05.2005, 20:10    Titel: Antworten mit Zitat

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 happy



==========================================

Rechteischrehbfler snid besbaithcigt und dnieen der allgeiemenn Bleustuigng
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 31.05.2005, 20:18    Titel: Antworten mit Zitat

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. lächeln Das ist aber nur eine Feinheit und ist für die Funktionstüchtigkeit des Programms völlig egal. lächeln

Zitat:
Dank die Sebastian happy

Kein Problem. zwinkern

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | 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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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