Español
Fuente/ Codesnippets

Fclose Fopen

 
Aha also debería una echtes XProfan10 fopen/fclose así aussehen:
KompilierenMarcaSeparación
proc fopen

    parameters fle$,mode$
    declare h&
    h&=assign(fle$)

    if mode$="r"

        reset h&

    elseif mode$="w"

        rewrite h&

    elseif mode$="a"

        append h&

    elseif mode$="b"

        openrw h&

    endif

    return h&

endproc

proc fclose

    parameters h&
    close h&
    assign h&,""

ENDPROC

?
 
02.05.2006  
 




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
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

30.11.2023  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.085 Views

Untitledvor 0 min.
Jens-Arne Reumschüssel05.07.2024
GDL22.05.2024
Thomas Freier06.01.2024
E.T.27.12.2023
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie