![]() |
pascal problem! array schreibn
also:
i hab wieder mal ein problem für euch!!!;) müssn für die schuile da so a schirches proggi schreiben und jetzt bring ma ned zam an array in die datei zum schreim!! er sagt immer:"ungültige qualifizierung". und jetzt brauchat ma bidde a paar lösungsvorschläge! Quelltext: procedure schreiben(var ptmoment:tgesamt); var dat,dat2:text; letztzahl:integer; begin assign(dat2,'zahl.txt'); reset(dat2); readln(dat2,letztzahl); close(dat2); assign(dat,'index.txt'); {$i-} reset(dat); {$i+} If (ioResult<>0) then begin assign(dat,'index.txt'); rewrite(dat); close(dat) end; assign(dat,'index.txt'); append(dat); write(dat,ptmoment[letztzahl]); {ungültige qualifizierung} close(dat) end; |
TP-Hilfe sagt:
Code:
(ungültige Qualifizierung) |
so gscheit war ich auch schon! aba das hat ma nicht wirkli weiter gholfen! :rolleyes: leider! *schnief*
weil a: sie is ein array b: sie is auch ein record c: und das letzte versteh ich nicht was das heisst! aba kann ma irgendwer in quelltext korriegieren oda so?? ich weiß nämli uur nicht mehr weiter! |
Zitat:
Strukur/Definition von tgesamt wäre nett zu wissen? |
oke ich hab dir/euch mal da das ganze proggi geadded!
danke schon mal jetzt! :) |
Code:
tdatum=record je nach dem was schreiben willst: Code:
write(dat, ptmoment.kennzahl.raum) Code:
ptmoment[letztzahl].zeit.stunde |
na schau ich will den gsamten array ptmoment im feld[letztzahl (is a zahl aus einer datei)] in eine neue datei mit den namen inex.txt schreiben!
in dem array-feld soll ein zahlendatensatz drinnstehn der sich aus datum zeit kennzahlen zusammensetztt! oda hab ich das falsch verstanden? meinst du das ich schreiben müsste: write(dat, ptmoment.kennzahl.raum.gerät.zeit.stunde) aba das geht ja nciht! ich hab ma dacht ich schreib den ganzen record tgesamt in das array! ich weiß ja nicht ich kenn mich mit dem noch nciht gut aus! ham das grad neu gmacht! und unser lehrer is a bissi a depp! :) Zitat:
Zitat:
was meinst damit? dann tät er ja nur zeit und stunde schreiben! oda?:confused: |
Zitat:
Zitat:
Code:
write(dat, ptmoment[letztzahl].datum.jahr) |
sorry hab grad min 30-40 zeilen gschrieben und dann is compi abgstürtzt jetzt weiiß ichs nimma genau aba ich versuchs nomal:
aha :eek: *check* aba bleibt das dann trotzdem nur in einem index von dem array? das soll dann eine riesige zeichenkette sein! z.B.: 2002020915341801081 heisst so viel wie im Jahr 2002 am 09.02 um 15:34:18 Uhr wurde im Raum 1 das gerät 10 eingeschaltet! so wenn ich das aus der datei dann wieder herausles kann ich dann auch wieder auf die einzelnen records zugreifen? nein oda? weil wenn ich jetzt schreib: Code:
readln(dat,ptmoment[letztzahl]); aba wenn ich jetzt schreib: Code:
readln(dat,ptmoment[letztzahl].datum.jahr |
he das funktioniert aba auch nciht! habs grad ausprobiert:
Code:
write(dat, ptmoment[letztzahl].datum.jahr) obwohl ich die strichpunkte noch hinzugefügt haben obwohl die damit ja nix zu tun haben! ich weiß nicht! an was kannst da liegen!? |
Zitat:
Code:
procedure schreiben(var ptmoment:tgesamt); Auslesen musst anders. Ja, so wie ichs geschrieben hab, ist's eine Zeichenkette ohne Leerzeichen oder sonstwas, was das auslesen etwas schwierig machen dürfte. Ein Leerzeichen (irgendein Trennzeichen) wäre schon angebracht, damit man es vernünftig wieder auslesen kann bzw. du kannst die Werte auch untereinander schreiben (writeln)). Auslesen musst jeden Wert einzeln, und natürlich auch den Feldern im Record wieder zuweisen. |
Lesen vom file als Beispiel (ohne Gewähr und ohne Fehlerüberprüfung):
Code:
procedure leserecordvonfile(var Dateiname:String;var indenRecord:tgesamt); Kannst natürlich auch die Daten in eine Zeile schreiben (mit Delimiter), einen String einlesen und die Daten aus dem String extrahieren. |
Zitat:
ab es funzt trotzdem nicht! das a´ndere werde ich ma noch anschaun! hab noch ikeine zeit ghabt! danke! aba es geht nciht mit dem reinschreiben! :heul: |
Zitat:
Wennst den schon indizierten Record (sprich: tmoment[25]) übergeben willst, musst innerhalb der schreiben procedure den index weglassen (also z. B. ptmoment.datum.jahr). Wennst den Index, so wie dus gemacht hast, innerhalb der Prozedur ausliest, wirst schon das gesamte array übergeben müssen und nicht nur einen Record .... :rolleyes: |
Zitat:
ja 9ich will eh den ganzen array übergeben! es soll in einem index vom array der komplette record tgesamt sein! |
Zitat:
Zitat:
Wir haben anscheinend ein bisschen aneinander vorbei geredet. :lol: |
Alle Zeitangaben in WEZ +2. Es ist jetzt 18:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag