readfile funzt net
-
Und wie so immer die Standardfrage:
Wenn ReadFile fehlschlägt, was sagt GetLastError()?
-
wir haben dir bereits gesagt woran es liegt
-
filereader schrieb:
es liegt also wirklich nur an der FileRead() und da sehe ich keinen fehler.
*vordenkopfschlag*
Wie oft muss man dir noch sagen, dass text auf einen allokierten Speicherbereich zeigen muss?
-
sorry da hab ich nen schreibfehler.
mein "text" ist vom typ LPCTSTR und der ist schon vor allokiert.
-
Dann zeig eben nochmal deinen Code, wie du ihn wirklich hast
-
es läuft jetzt.
ich habe im dateipfad jetzt immer "\" statt "/" gesetzt.wie bekomme ich den (LPVOID) buffer über ne messagebox ausgegeben?
ich hab schon versucht mit nem LPTSTR auf den buffer zu zeigen und das ganze auszugeben aber das geht auch net.
-
Hättest Du gleich GetLastError() benutzt, hätte Dir diese Funktion den Wert
123 | The filename, directory name, or volume label syntax is incorrect. | ERROR_INVALID_NAME
zurückgegeben und Du hättest gleich gewußt, was falsch ist!
Aber nein, erst stundenlang hier im Forum auf Antwort warten, anstatt das naheliegenste zu tun (nämlich mit GetLastError() den letzten Fehler (der bei ReadFile definitiv aufgetreten ist) abzufragen).
-
Inwiefern funktioniert das denn nicht? Evtl. ist der Text auch einfach nur zu lang -> GetLastError()
-
nein dem habe ich vorgebeugt.
ich bekomme nur kästchen ausgegeben und den letzten buchstaben von dem was in der txt steht.hier mein ganzer code:
static HANDLE hdatei; static LPVOID buffer; static DWORD size; static DWORD bytes; hdatei = CreateFile(TEXT("\\programme\\wanderkarte\\events.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); size = GetFileSize(hdatei,NULL); buffer = malloc(size); if(hdatei == INVALID_HANDLE_VALUE) { MessageBox(NULL,L"schade",L"",MB_OK); } else { if(0 == ReadFile(hdatei,buffer, size,&bytes,NULL)) { MessageBox(NULL,L"datei konnte nicht gelesen werden",L"",MB_OK); } else { //MessageBox(NULL,L"datei konnte gelesen werden",L"",MB_OK); MessageBox(NULL,static_cast<LPCTSTR>(buffer),L"",MB_OK); } } free(&buffer); CloseHandle(hdatei);
-
MessageBoxW
-
des unterstützt meine api nicht.
wie gesagt ich bekomme den letzten buchstaben ausgegebn und alle zeichen davor werden als kästchen dargestellt.
-
ist die datei auch im unicode zeichensatz gespeichert?
-
ja.
-
Poste doch mal ein Stück von der Datei.
-
hallo welt
-
wenn das die ganze Datei ist wie groß ist diese Datei auf der Platte?
-
10 Byte
es geht aber auch nicht mit größeren dateien
-
ist die datei 10 oder 20 bytes groß?
-
lol
das hast du ja gerade gepostet
dann ist die datei doch nicht im unicode zeichensatz. du lügner
-
es ist ne normale txt