| |
|
|
| |
|
| |
|
|
|
Michael Wodrich | Sí, entonces ists klar. Und con iFs drumherum-Características voluntad se auch el C-Indianer hier wohl fühlen.
Aunque kann a Fuß programmiert una weiteres Asignar en obigem Ejemplo de Roland entfallen.
Das una es bien para weitere Bearbeitung, el otro es bien para sofortige Handle-Freigabe.
Gracias Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 02.05.2006 ▲ |
|
|
|
|
RGH | [quote:4504e32796=iF]Aha also debería una echtes fopen/fclose así aussehen: ...[/quote:4504e32796] Korrekt! |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 02.05.2006 ▲ |
|
|
|
|
H.Brill | Irgendwas scheint pero no frei gegeben a voluntad. Beim erneuten Carta en un con OpenRW geöffneten Expediente, es el letzte DS doppelt drin, si la a schreibenden Daten weniger son. Also en lugar de 3 DS sólo todavía 2 drin posición debería.
Declarar Largo datei, Memory Waren[]
Conjunto("Decimals", 2)
Struct Artikel = Name$(30), Preis!
Dim Waren[], Artikel
SetSize Waren[], 3
datei = Asignar($PROGDIR + "Waren.dat")
OpenRW datei
With Waren[0]
Waren[0].Name$ = "Milch"
Waren[0].Preis! = 0.99
EndWith
With Waren[1]
Waren[1].Name$ = "Butter"
Waren[1].Preis! = 2.25
EndWith
With Waren[2]
Waren[2].Name$ = "Käse"
Waren[2].Preis! = 3.55
EndWith
Imprimir "\nAus el Array gelesen :"
AusgabeArray()
Guardar()
Imprimir "\nTaste para Dateiausgabe..."
WaitKey
Edición()
Imprimir "\nDelete Satz Nr. 2 en Datei"
WaitKey
Arrdel Waren[], 1, 1
Imprimir "\nAusgabe Array después de ArrDel"
Waitkey
AusgabeArray()
Guardar()
Imprimir "\nNach Guardar el neuen Expediente."
Edición()
WaitKey
Proc Guardar
Declarar Largo offset
Asignar #1, $PROGDIR + "Waren.dat"
Borrar #1
Cerrar #1
Asignar #1, ""
Asignar #1, $PROGDIR + "Waren.dat"
OpenRW #1
offset = 0
WhileLoop 0, SizeOf(Waren[]) - 1
BlockWrite #1, Waren[&LOOP]
Inc offset, 35
EndWhile
Cerrar #1
Asignar #1, ""
ENDPROC
Proc Edición
Declarar Largo Records
Asignar #1, $PROGDIR + "Waren.dat"
OpenRW #1
Records = GetFileSize(#1) / 34
Claro Waren[]
SetSize Waren[], Records
Seek #1, 0
WhileLoop 0, Records - 1
BlockRead(#1, Waren[&LOOP], 0, SizeOf(Waren[&LOOP]))
With Waren[&LOOP]
Imprimir "Artikel :", .Name$, "Preis : ", .Preis!
EndWith
EndWhile
Cerrar #1
Asignar #1, ""
ENDPROC
Proc AusgabeArray
WhileLoop 0, SizeOf(Waren[]) - 1
With Waren[&LOOP]
Imprimir "Artikel : ", Waren[&LOOP].Name$, "Preis :", Waren[&LOOP].Preis!
EndWith
EndWhile
Guardar()
ENDPROC
End
Scheint así, como wäre una profaninterner Speicherbereich, el no oder no vollständig zurück gesetzt wurde, beteiligt. El Expediente se sí antes el erneuten Carta gelöscht. ArrDel funktioniert veces jedenfalls correcto. Was me todavía aufgefallen es : Erst, si yo el Expediente con el Explorer gänzlich gelöscht habe, son auch el Reste vom Dateiende verschwunden. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 29.11.2023 ▲ |
|
|
|
|
Georg Teles | Nabend,
schau mal en Línea 7, füge simplemente veces después de OpenRW datei
solange el Expediente "doppelt geöffnet" es, scheint XProfan el alte Dateigröße de 177 Bytes en lugar de neuen 78 auszulesen, porque esta gesperrt es, así ellos auch con Borrar no gelöscht, por lo tanto verzwickt se el
entonces klappts
dein ganzer Code:
Declarar Largo datei, Memory Waren[]
Conjunto("Decimals", 2)
Struct Artikel = Name$(30), Preis!
Dim Waren[], Artikel
SetSize Waren[], 3
datei = Asignar($PROGDIR + "Waren.dat")
OpenRW datei
Cerrar datei
With Waren[0]
Waren[0].Name$ = "Milch"
Waren[0].Preis! = 0.99
EndWith
With Waren[1]
Waren[1].Name$ = "Butter"
Waren[1].Preis! = 2.25
EndWith
With Waren[2]
Waren[2].Name$ = "Käse"
Waren[2].Preis! = 3.55
EndWith
Imprimir "\nAus el Array gelesen :"
AusgabeArray()
Guardar()
Imprimir "\nTaste para Dateiausgabe..."
WaitKey
Edición()
Imprimir "\nDelete Satz Nr. 2 en Datei"
WaitKey
Arrdel Waren[], 1, 1
Imprimir "\nAusgabe Array después de ArrDel"
Waitkey
AusgabeArray()
Guardar()
Imprimir "\nNach Guardar el neuen Expediente."
Edición()
WaitKey
Proc Guardar
Declarar Largo offset
Asignar #1, $PROGDIR + "Waren.dat"
Borrar #1
Cerrar #1
Asignar #1, ""
Asignar #1, $PROGDIR + "Waren.dat"
OpenRW #1
offset = 0
WhileLoop 0, SizeOf(Waren[]) - 1
BlockWrite #1, Waren[&LOOP]
Inc offset, 35
EndWhile
Cerrar #1
Asignar #1, ""
ENDPROC
Proc Edición
Declarar Largo Records
Asignar #1, $PROGDIR + "Waren.dat"
OpenRW #1
Records = GetFileSize(#1) / 34
Claro Waren[]
SetSize Waren[], Records
Seek #1, 0
WhileLoop 0, Records - 1
BlockRead(#1, Waren[&LOOP], 0, SizeOf(Waren[&LOOP]))
With Waren[&LOOP]
Imprimir "Artikel :", .Name$, "Preis : ", .Preis!
EndWith
EndWhile
Cerrar #1
Asignar #1, ""
ENDPROC
Proc AusgabeArray
WhileLoop 0, SizeOf(Waren[]) - 1
With Waren[&LOOP]
Imprimir "Artikel : ", Waren[&LOOP].Name$, "Preis :", Waren[&LOOP].Preis!
EndWith
EndWhile
Guardar()
ENDPROC
End
Grüße Georg |
|
|
| |
|
|