Sourcecodes - Dateien in einen String laden

Sprachenübersicht/C / C++/ C#/Daten & Ordner

Dateien in einen String laden

Diese Seite wurde 2601 mal aufgerufen.

Diese Artikel wurde als uneditierbar gepostet, und darf, wenn nicht ausdrücklich erlaubt nicht auf anderen Seiten verbreitet, oder editiert werden! Printversion

Herzlichen Dank an Anton Staruschkin von www.cpp-programming.de/, für die Erlaubnis seine Quellcodes zu veröffentlichen.

Mit der Funktion LoadFile2Str() lässt sich, auf eine schnelle Art und Weise (nicht Zeichen für Zeichen!), der Inhalt einer Datei (z.B. *.txt) in einen String laden. Dieser kann dann im Programm umgeformt oder ausgegeben werden. Hier die Funktion mit einem Beispiel:

Code:


#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;

LPSTR LoadFile2Str(LPSTR pszFileName)
{
   HANDLE hFile;   
   LPSTR pszFileText;

   hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
           OPEN_EXISTING, 0, 0);
           
   if(hFile != INVALID_HANDLE_VALUE)
   {
      DWORD dwFileSize;
      dwFileSize = GetFileSize(hFile, NULL);
      if(dwFileSize != 0xFFFFFFFF)
      {        
         pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
         if(pszFileText != NULL)
         {
            DWORD dwRead;
            if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
            {
               pszFileText[dwFileSize] = 0;              
            }            
         }
      }
      CloseHandle(hFile);
   }
   return pszFileText;
}


int main()
{
  LPSTR Buffer;
  Buffer = LoadFile2Str("test.txt");  // lädt die Datei test.txt
  cout<<Buffer<<endl<<endl;
  
  /*String wird verändert*/
  Buffer[0] = '1';
  Buffer[1] = ' ';
  Buffer[4] = '2';
  Buffer[5] = '!';
  
  /*erneute Ausgabe*/
  cout << Buffer;
  
  getch();
  return 0;
}

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Sprachenübersicht/C / C++/ C#/Daten & Ordner/Dateien in einen String laden