Text Binär auslesen

Ives

Mitglied
Mein Problem ist,
ich will ein Programm schreiben mit dem man einen Text (entweder word oder .txt) auslesen kann, dieser soll dann mithilfe eines codes verschlüsselt werden, und dann wieder gespeichert werden, und natürlich sollte das ganze auch anders herum funktionieren.

Also konkretes Problem:
Wie lese ich einen ganzen text so aus das er im binärcode in ein , Int feld oder einem string gespeichert werden kann?


Thx für die Hilfe, hab hier zwar schon nen paar fragen in die richtung gefunden, bin aber nicht ganz damit zurechtgekommen
greez Ives
 
moin


Mit der Suchfunktion solltest du hier einige Informationen dazu finden.
Du weisst aber das Word-Dateien ein bestimmtes Format haben, das du beachten musst?!

Und gib in Zukunft immer gleich an welchen Compiler, welche Sprache und welches Betriebsystem du nutzt, dann kann dir wesentlich besser geholfen werden.


mfg
umbrasaxum
 
Also,
Sprache ist c++ mit bem Boarland C++Builder 5
und ja, ich hab mich auch schon ne Weile durch's Forum gewälzt, aber irgend wie nicht das absolut Passende und Funktionierende gefunden.
greez Ives
 
moin


Das du ncihts findest was auf dich zugeschnitten ist, ist klar.
Aber woran hapert es denn ?
Am öffnen? Am lesen?


mfg
umbrasaxum
 
Bis jetzt habe ich das so gemacht:
{
ifstream fin (txtvar1);
getline(fin,textHaupt,'\0');
}
So wird aber der Text(ascii) auch als solcher gespeichert, da es aber schwierig ist den sinnnvol zu verschlüsseln, weil es im Ascii nunmal \007 gibt und das nicht in ein Texfile als Zeichen abgespeichert werden kann
Abgespeichert hab ich bis jetzt so:
{
ofstream fout (txtvar2);
fout << textArbeit;
}
Also ist meine Grundidee gewesen ich wandle den Text in Binärcode um, verschlüssele ihn dann, und speicher ihn auch im Binäcode.
Wenn man den Text wieder umwandeln will also erst entschlüsseln und dann wieder in Asciicode umwandeln, mein eigentliches Problem ist also wie krieg ich das Umwandeln hin
greez Ives
 
Wenn du schon im Builder arbeitest kannst du auch gleich
TMemoryStream verwenden

z.B.

Code:
TMemoryStream *stream = new TMemoryStream;
BYTE *Memory;
int Size;

stream->LoadFromFile( "test.txt" );
Memory = (BYTE*) stream->Memory;
Size = stream->Size;

// ...... jetzt kannst du über Memory auf jeden einzelnen char zugreifen.
// ...... oder du gehst mit einem anderen Pointer rein, z.B. (int*), dann mußt
// .......Size nur durch sizeof( int ) teilen, falls du mit einer for-Schleife drüber willst

for( int i = 0; i < Size; i++ )
{
   Memory[ i ] = .....
}

stream->SaveToFile( "test.txt" ); // speichert deine veränderte Datei wieder

BadMourning
 
Also generell kannst du binaer ein- und auslesen mit dem binary-flag:

Code:
#include <iostream>
#include <fstream>

using namespace std;

int main(void) {
   char c;
   ifstream in("text.txt",ios::binary);
   ofstream out("text.enc",ios::binary);

   while (in.get(c)) {
      out.put(c);
   }

   return 0;
}
 
Zuletzt bearbeitet:
So, ich habe das Problem gelöst, zwar nicht auf die Art und Weiße wie es geplant war, aber das ändert am Ergebnis nichts.
Trotzdem danke für die Hilfe.
greez Ives
 
Zurück