C++ Builder Snippets  

Zeilen an eine Textdatei anhängen (z.B. für Log-Dateien):
 
//---------------------------------------------------------------------------
// Funktion SaveTextToFile() speichert eine Stringliste oder einen String in
// der Textdatei mit dem im Parameter slFileName übergebenen Namen. Ist der
// Wert des Parameters blAppend 'true', wird der Text an die bestehende Datei
// angehängt, anderenfalls wird die Datei überschrieben.
//---------------------------------------------------------------------------
// Übergabeparameter:
//
// AnsiString slFileName -> Dateiname
// TStrings*  pslStrings -> Zeiger auf die zu speichernde Stringliste
// AnsiString slString   -> Der zu speichernde Einzelstring
// bool       blAppend   -> Flag "Text anhängen"
//---------------------------------------------------------------------------
// Hinweis:
//
// Falls nur der String slString gespeichert werden soll, muss im Parameter
// pslStrings NULL übergeben werden. Ist pslStrings != NULL, wird die
// Stringliste gespeichert.
//---------------------------------------------------------------------------
// Beispielaufrufe:
//
// --- Speichern einer TStringList ---
//
//   TStringList* pslStringList = new TStringList;
//   pslStringList->Add("String 1");
//   pslStringList->Add("String 2");
//   pslStringList->Add("String 3");
//   if(!SaveTextToFile("C:\\log.txt", pslStringList, EmptyStr, true))
//      ShowMessage("Datei konnte nicht geschrieben werden !");
//   ...
//   if(pslStringList != NULL)
//   {
//     delete pslStringList;
//     pslStringList = NULL;
//   }
//
// --- Speichern des Inhalts einer TMemo ---
//
//   if(!SaveTextToFile("C:\\log.txt", Memo1->Lines, EmptyStr, true))
//      ShowMessage("Datei konnte nicht geschrieben werden !");
//
// --- Speichern des Inhalts einer List- oder ComboBox, RadioGroup etc: ---
//
//   if(!SaveTextToFile("C:\\log.txt", ListBox1->Items, EmptyStr, true))
//      ShowMessage("Datei konnte nicht geschrieben werden !");
//
// --- Speichern des Inhalts einer TEdit: ---
//
//   if(!SaveTextToFile("C:\\log.txt", NULL, Edit1 -> Text, true))
//      ShowMessage("Datei konnte nicht geschrieben werden !");
//
// --- AnsiStrings speichern ---
//
//  AnsiString slDateTime = Now().FormatString("dd.mm.yyyy - hh.mm.ss");
//  if(!SaveTextToFile("C:\\log.txt", NULL, slDateTime, true))
//      ShowMessage("Datei konnte nicht geschrieben werden !");
//
//---------------------------------------------------------------------------
bool SaveTextToFile(AnsiString slFileName, TStrings* pslStrings,
  AnsiString slString, bool blAppend)
{
  AnsiString slTextToSave = pslStrings ? pslStrings->Text :
    AnsiString(slString + "\r\n");
  try
  {
    // Datei öffnen/erzeugen, Handle besorgen:
    int ilHandle = FileExists(slFileName) && blAppend ?
        FileOpen(slFileName,fmOpenReadWrite) :
        FileCreate(slFileName);
    // Handle i.O. ?
    if(ilHandle >= 0)
    {
      // Dateiende suchen:
      FileSeek(ilHandle,0,2);
      // Text schreiben:
      FileWrite(ilHandle, slTextToSave.c_str(), slTextToSave.Length());
      // Datei schliessen:
      FileClose(ilHandle);
      return true;
    }
    else return false;
  }
  catch(...)
  {
    return false;
  }
}


  Download BCB5
Projekt-Quellcode
Download
Demo-Exe

© '99-2001 by S. Kreutzmann