Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
seimon
Anmeldungsdatum: 09.06.2007 Beiträge: 12
|
Verfasst am: 09.07.2007, 19:03 Titel: Länge einer .DAT-datei bestimmen |
|
|
Hi, ich habe leider folgendes Problem:
Wenn ich eine Datei einlesen möchte, z.B. eine Random-Datei z.B.
Code: |
CLS
TYPE xxr
bauteilname AS STRING * 12
Nr AS STRING * 4
gewicht AS SINGLE
preis AS DOUBLE
END TYPE
a$ = "\ \ \ \ ##### ##########"
DIM bauteil(2) AS xxr
OPEN "bauteil.dat" FOR RANDOM AS 1 LEN = LEN(bauteil(2))
FOR i = 1 TO 2
GET 1, i, bauteil(i)
PRINT USING a$; bauteil(i).bauteilname; bauteil(i).Nr; bauteil(i).gewicht; bauteil(i).preis
bauteil(i).preis = bauteil(i).preis / 1.95584
PUT 1, i, bauteil(i)
NEXT i
CLOSE 1
END
|
Nur wollte ich gerne, dass das Prog. auch läuft wenn die Anzahl der Datensätze unbekannt ist, ich habe da die LOF()-Funktion gefunden, jedoch wenn ich in meinem Beispiel die 2 (in der FOR Schleife) ersätze bekomm ich immer eine Fehlermeldung. Woran lieg das?
mfg seimon |
|
Nach oben |
|
 |
csde_rats

Anmeldungsdatum: 07.01.2007 Beiträge: 2292 Wohnort: Zwischen Sessel und Tastatur
|
|
Nach oben |
|
 |
seimon
Anmeldungsdatum: 09.06.2007 Beiträge: 12
|
Verfasst am: 09.07.2007, 19:34 Titel: |
|
|
Sorry, er hat immer gesagt "INdex außerhalb des zulässigen Bereiches",
allerdings hab ich es, glaube ich, rausgefunden^^, denn wenn ich in der FOR-Schleife LOF(1)/28 mache geht alles wunderbar.
Ich danke trotzdem für das Angebot zur Hilfe.
mfg seimon |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 09.07.2007, 19:50 Titel: |
|
|
Hallo
Das liegt wohl daran, dass LOF(n) die Dateilänge in Byte angibt. Da deine mit TYPE definierten Variablen aber aus 28 Bytes bestehen, funktioniert es mit LOF(1) / 28, denn das ergibt folglich die Anzahl dieser 28-Byte-Datensätze.
Gruß
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
seimon
Anmeldungsdatum: 09.06.2007 Beiträge: 12
|
Verfasst am: 09.07.2007, 20:15 Titel: |
|
|
Hi, ja genau ich hab die 28 ja auch nicht einfach geraten^^. Wollte halt nur bescheid sagen das zumindest dies Frage beantwortet ist.
Danke für eure Mühen
mfg seimon |
|
Nach oben |
|
 |
|