Du möchtest einfach nur die Bytes von Dateien in eine Textdatei schreiben, habe ich dies richtig verstanden? Wenn ja, wieso nicht die ganze Bytesanzahl?
Du könntest den Pfadname der Datei auslesen, davon den String so spliten, dass nur noch der Dateiname überbleibt und anschließend die Bytes auslesen und dieses Beides in eine Textdatei schreiben.
Das könnte z.B. so in der Textdatei aussehen :
Dateiname "Beispiels.txt" Bytes "3151232"
Dann könntest du jede Linie einzeln mit _FileReadLine auslesen und die Infos mit _StringBetween herausfiltern um sie dann weiter zu verwenden.
Nein, ich möchte wirklich nur die Bits schreiben Also keinen String mit "11011101" wo dann in der Datei mit Unicode das steht, sondern so dass wirklich die ganze Datei nur hier 8 Bits lang ist. Also so, dass mir der Texteditor warscheinlich garnichts anzeigt, weil er versucht daraus einen Buchstaben zu lesen. Und es muss auch keine txt sein, kann auch eine .auiawdb sein^^
@lolkop: kannst du mir ein Beispiel geben, ich wüsste jetzt nicht, wie ich das anwenden sollte^^
Datei im binary Modus mit FilOpen öffnen und dann was in Hex reinschreiben?
Nein, ich möchte wirklich nur die Bits schreiben Also keinen String mit "11011101" wo dann in der Datei mit Unicode das steht, sondern so dass wirklich die ganze Datei nur hier 8 Bits lang ist. Also so, dass mir der Texteditor warscheinlich garnichts anzeigt, weil er versucht daraus einen Buchstaben zu lesen. Und es muss auch keine txt sein, kann auch eine .auiawdb sein^^
@lolkop: kannst du mir ein Beispiel geben, ich wüsste jetzt nicht, wie ich das anwenden sollte^^
Datei im binary Modus mit FilOpen öffnen und dann was in Hex reinschreiben?
8Bits sind 1Byte. Bytes kannste schreiben, wo ist das problem?
willst du wirklich einen binären string in die datei schreiben, so musst du diesen string vorher in eine zahl umwandeln.
das könnte man zb mit einer einfachen rekursiven funktion machen. hier ein beispiel:
Code:
Func BinToDec($bin, $dec=0, $cntr=0)
If $bin='' Then Return $dec
Return BinToDec(StringTrimRight($bin,1), $dec+StringRight($bin,1)*2^$cntr, $cntr+1)
EndFunc
ConsoleWrite(BinToDec("11111110")&@CRLF)
somit hast du stets ein byte, welches du schreiben könntest. im normalfall hat man aber bereits die bytes gegeben, welche man schreiben bzw lesen möchte. da du ja die binären operationen auch nur über zahlen anwenden kannst, ist es unüblich mit strings von binären zahlen zu arbeiten.
Habe die Datei test.abc . Wenn ich sie mit dem Editor öffne, steht da "abc" als String drin. Grundlegend besteht die Datei aber aus Bits. Hier insgesammt 24, also 3 Byte (ein Byte Pro Char). Jetzt will ich aber ein neues Dateiformat, was nicht für den Editor, sondern für ein anderes Programm ist.
Schreibe ich mit Autoit "1" (Hier noch als Sting oder Int) rein, ist die Datei 1 Byte groß. In Hex steht da drin 0x00000001. Würde ich 1111 schreiben wollen, würde in der Datei das von grade eben 4 mal stehen. Für das Beispiel von oben 8 mal. Viel zu viel um ressourcenspaarend zu sein.
Also möchte ich, dass wenn ich 1 reinschreiben nur 0x1 drinsteht, oder beim Beispiel von oben 0x0F10010F (habs jetzt nicht umgerechnet). Die 1 die ich reinschreibe ist nichtmehr vom Typ String oder Int, sondern Bit. Ein Bit kann nur 0 oder 1 sein und nicht 2 oder a.
Also wäre die Datei mit dem Inhalt 0x0F10010F genau 1 Byte groß.
Nur schade, dass man nichts kleineres als 1Byte speichern kann. Je nach Dateisystem(ich vermute sogar bei jedem) nimmt deine 1Byte Datei sogar mehr als 1Byte Speicherplatz weg. Du versuchst hier an der vollkommen falschen Stelle zu sparen.
Hmm ok. Und wie kann ich einen Byte speichern? Ich möchte jetzt bspw. die Zahl 16 in einem Byte speichern. Ein Byte kann ja 256 unterschiedliche Werte haben umgerechnet in Dez.
ich hatte doch bereits gesagt, das autoit zahlen als dword/int automatisch behandelt. diese sind unter windows exakt 4 byte groß. willst du nur ein byte nutzen, musst du das ganze mit binären befehlen bearbeiten.
ich hatte doch bereits gesagt, das autoit zahlen als dword/int automatisch behandelt. diese sind unter windows exakt 4 byte groß. willst du nur ein byte nutzen, musst du das ganze mit binären befehlen bearbeiten.
Kann man bei AutoIt nicht direkt 0x01 angeben? Also FileWrite($hwnd,0x01)
doch schon aber autoits automatische typen analyse macht aus der eingabe 0x1(hex) automatisch 1(dec). und 1(dec) wird binär wieder als dword ausgewertet und somit wird 0x00000001 gespeichert.
c++ winapi, etwas in eine Datei schreiben? 11/17/2011 - C/C++ - 2 Replies Abend, ich bräuchte hilfe mit dem Schreiben von Texten (bzw. andere Sachen) in Dateien.
Das habe ich:
fstream f;
f.open("C:\\test.txt", ios::out);
f << "text" << endl;
f.close();
ini datei schreiben c++ 11/04/2010 - C/C++ - 29 Replies ich will eine ini datei mit c++ erstellen.
aber der folgende code will nicht (es wird keine ini datei erstellt)
WritePrivateProfileString(L"etwas", L"etwas", L"wieder etwas", L"test.ini");
was is der fehler daran?
edit: windows.h hab ich includiert
[VB.NET][TuT] Sequenziell eine Datei lesen und schreiben 02/26/2010 - Coding Tutorials - 0 Replies Die Projekt Datei ist schon mit Visual Basic 2008 benutzbar.
================================================= ===
In diesem Tutorial zeige ich euch, wie wir aus einer datei lesen und diese schreiben.
===================================
===================================
•Was wir brauchen
- Label1 (BackColor = Control, BorderStyle = Fixed3D, AutoSize = False)
- Label2 (Text = Nr)