3.10.2 Daten schreiben

Datei erzeugen, Zum Schreiben öffnen, Textdaten schreiben, Binärdaten schreiben, nächsten Datensatz schreiben, Datei schliessen
/******************************************************************/
/* Programm um den Zugriff auf den FLASH-Speicher zu zeigen       */
/******************************************************************/

#include	
#include	"define.h"
#include	"libc.h"

void main()
{
  FILE_BUF fb;	          /* Dieses struct nimmt alle Daten auf */
  char filename[20];	  /* Dateiname */
  FILE_INFO fi;		  /* Vergleichbar einem Filehandle */
  word fhandle;				
  word errcode;

  memset(&fb,0,sizeof(fb));     /* Zuerst den Datenbereich initialisieren */
  strcpy(filename,"Testdaten");	/* Und den Dateinamen zuordnen */
                                /* wir wollen eine Datei zum schreiben öffnen */
  if (! LibSubEntrySave(filename,&(fb.fsb_sub_entry_)))
                                /* in sb.fsb_sub_entry steht die Nummer des Files */
    LibPutMsgDlg("Dateifehler 1");    /* Fehlerbehandlung ist hier nur angedeutet */

	/* jetzt noch die Modusnummer für den Main-Modus lesen */
  if(!LibGetAllEntry(filename,&(fb.fsb_main_entry_),&(fb.fsb_sub_entry_)))
    LibPutMsgDlg("Dateifehler 2");  /* Fehlerbehandlung ist hier nur angedeutet */
  fb.fsb_scrt_info_=FILE_OPEN_MODE; /* nicht im Geheimen Bereich arbeiten */

	/* Die Datei ist jetzt zum Schreiben bereit */

  fi.fp      = 0xffff;	    /* Wir schreiben an das Ende der Datei */
  fi.kind    = FILE_KIND_BIN;     /* ADDINs dürfen nur Binärdaten schreiben */

  /* Der fb-Bereich wird mit Daten gefüllt */

  strcpy(fb.fbuf.bin.bin_buf,"Ein Testeintrag");
  fb.fbuf.bin.char_num=16;   /* Länge der Daten */

  fhandle=LibFileWrite(&fb,&fi);	/* Die Daten werden geschrieben */
                             /* in fhandle steht, ob es geklappt hat, oder nicht */
  errcode=FlashStatus;       /* FlashStatus ist eine globale Variable des PVOS */
  if(!fhandle)
    LibErrorDisp(errcode);	/* Fehlerbehandlung ist hier nur angedeutet */

  LibJumpMenu();
}

Für Ergänzungen wenden Sie sich bitte an: Jürgen Wagner