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: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum