Hallo,
ich wüsste gern wie ich grössere Dateien (~5MB) in c++ am besten nach strings durchsuche. Mein problem bei der sache ist nämlich, dass ich einen integer zum zählen benutze und der zu "klein" ist.
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
hi,
hier mal mein quelltext zur verdeutlichung meines problems.
/me is eigentlich assembler-coder, deswegen tu ich mich ein bisschen schwer mit cpp
SambaIt(HWND hWnd)
{
int check, size, i, x;
char pcname[100] = "",
datum[11] = "",
benutzer[50] = "",
inputdatei[100] = "",
outputdatei[100] = "",
inputbuf[2000000] = "";
HANDLE hInput;
DWORD read;
GetDlgItemText(hWnd,IDC_PC,pcname,100);
check = lstrlen(pcname);
if(check == 0) {
MessageBox(hWnd,"Bitte einen PC-Namen angeben!","Fehler!",MB_OK);
return TRUE;}
GetDlgItemText(hWnd,IDC_DATEI,outputdatei,100);
check = lstrlen(outputdatei);
if(check == 0) {
MessageBox(hWnd,"Bitte einen Dateinamen eingeben!","Fehler!",MB_OK);
return TRUE;}
if(tagcheck2) {
GetDlgItemText(hWnd,IDC_TAG,datum,11); }
if(benutzercheck2) {
GetDlgItemText(hWnd,IDC_BENUTZER,benutzer,50); }
lstrcat(inputdatei, pcname);
lstrcat(inputdatei,".samba.log");
hInput = CreateFile(inputdatei, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL);
if(hInput == INVALID_HANDLE_VALUE) {
MessageBox(hWnd,"Fehler beim Öffnen der Datei!\nNicht vorhanden?","Fehler!",MB_ICONWARNING);
return TRUE;}
size = GetFileSize(hInput, NULL);
if(size MessageBox(hWnd,"Die log-Datei ist kleiner als der PC-Name?","Hmmmmmmmmm",MB_ICONQUESTION);
return TRUE; }
ReadFile(hInput, inputbuf, size, &read, NULL);
for(i=0;i if(inputbuf[i] == pcname[0]){
check = lstrlen(pcname);
for(x = 1; x if(!(inputbuf[i+x] == pcname[x])){
break;
}
}
if(check == x){
if(!benutzercheck2 && !tagcheck2) {
}
}
}
}
CloseHandle(hInput);
return TRUE;
}