Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: SD Card - schreiben in eine Datei Kategorie: IDE (von Christian - 19.12.2010 18:41)
Als Antwort auf Re: SD Card - schreiben in eine Datei von Jörg - 19.12.2010 15:44

> > Hallo,
> >
> > ich erfolgreich das SD-Card Beispiel von der IDE 2.12.06 getestet.
> >
> > Nun möchte ich aber bei jedem erneuten Aufruf, Daten an die Datei anhängen.
> >
> > Im Beispiel wird die Datei immer wieder neu erzeugt.
> >
> > Nun habe ich gelesen das man die Schreibposition mit SDC_FSeek bestimmt.
> >
> > "Die Schreibposition kann mit SDC_FSeek bestimmt werden."
> >
> > Wie muss ich da vorgehen??
> >
> > Gruss Christian
>
> Hallo Christian,
>
> ich hätte erwartet, das bei jedem neuen schreiben die Daten (wie bei File IO)
> angehängt werden. Ist das hier nicht so?
>
> GrueÃ?e Joerg
>
Hallo Joerg,

ich habe das noch mal getestet, neue Daten werden in die Datei eingefügt. Aber nicht
hinten angehängt, sondern überschreibt den Anfang wieder.

Dafür soll man laut Anleitung ja auch SDC_FSeek nutzen. Aber irgendwie funktioniert das nicht.

Die Variable pos ist immer = 0

-------------- mein Test Code ---------------------
'Globale Variablen
Dim fat(562) As Byte
Dim fil(32) As Byte

Sub SD_Karte_main()
    'Lokale Variable

    Dim res As Byte
    Dim buf(100) As Char
    Dim bytes_written(1) As Word
    Dim Free(1) As ULong
    Dim pos As ULong
    Dim Status As Byte

    Status = SDC_Init(fat)     ' SD-Card Fat init

    Status =  SDC_GetFree("0:/",Free)

    Status = SDC_MkDir("0:/CC-PRO") ' Neuen Dateiordner erstellen

    If Status = FR_NOT_READY Then   '3 = Speichermedium nicht vorhanden
       Goto W1
    End If

    ' Ist die Datei bereits vorhanden?
    ' Wenn nicht dann wird die Datei angelegt

    'Sub SDC_FOpen(ByRef fil_ramaddr As Byte, ByRef path As Char, mode As Byte) As Byte
    res=SDC_FOpen(fil, "0:/CC-PRO/test.txt", FA_READ Or FA_WRITE Or FA_OPEN_EXISTING)

    If res<>0 Then
     SDC_FOpen(fil, "0:/CC-PRO/test.txt", FA_WRITE Or FA_CREATE_ALWAYS)
    End If

    Status = SDC_FSeek(fil,pos)     ' Schreibposition suchen

    ' Schreibt einen Text in die Datei

    buf= "Hallo... 123!rn"

    SDC_FWrite(fil, buf, Str_Len(buf), bytes_written)

    SDC_FSync(fil)

    SDC_FClose(fil)     ' Datei wird geschlossen

    Lab W1

End Sub
--------------------------------------------------------

Gruss Christian


    Antwort schreiben


Antworten:

Re: SD Card - schreiben in eine Datei (von Jörg - 19.12.2010 19:09)