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 Jörg - 19.12.2010 19:09)
Als Antwort auf Re: SD Card - schreiben in eine Datei von Christian - 19.12.2010 18:41

> > > 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

Hallo Christan,

habe ich dich richtig verstanden:

Wenn man SDC_FWrite in einer schleife aufruft (ohne close), dann werden die alten Daten überschrieben?.

Grü�e Joerg
 


    Antwort schreiben


Antworten: