Funktioniert nicht. Wiso?
-
// Application searches for strings in files
// mgrep.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#include "windows.h"#define MAX_BUFFER_LENGTH 1024
// Dateigröße ermitteln und zurückliefern
DWORD GetFileSize(char *FileName)
{
WIN32_FIND_DATA fd;
HANDLE h;h = FindFirstFile(FileName, &fd);
if(h == INVALID_HANDLE_VALUE)
return 0xffffffff;FindClose(h);
return (fd.nFileSizeHigh * (MAXDWORD)) + fd.nFileSizeLow;
}BOOL FindString(char *Lesepuffer, char *SuchString)
{
int LesepufferLength = strlen(Lesepuffer);
int SuchStringLength = strlen(SuchString);for(int iLesepuffer = 0; iLesepuffer < LesepufferLength; iLesepuffer++)
{
//printf("[%d] %c\n", iLesepuffer, Lesepuffer[iLesepuffer]);// Fein, das erste Zeichen stimmt
if(Lesepuffer[iLesepuffer] == SuchString[0])
{
// nun die restlichen Zeichen von Suchstring mit Lesepuffer vergleichen
for(int iSuchString = 1; iSuchString < SuchStringLength; iSuchString++)
{
//printf([%d] %c\n", iSuchString, SuchString[iSuchString]);
if(Lesepuffer[iLesepuffer + iSuchString] != SuchString[iSuchString])
{
MessageBox(NULL, "falsch!", "MGREP.EXE", MB_ICONSTOP);
break;
}}
//Welchen Wert hat iSuchString
if(iSuchString == SuchStringLength)
{
//Schleifenzähler um um die Länge des Suchstrings erhöhen
iLesepuffer = iLesepuffer+SuchStringLength-1 ;
printf("iSuchString = %d\n", iSuchString);
}
}
}return FALSE;
}int main(int argc, char* argv[])
{
DWORD FileSize = 0;
FILE *fp;
char DateiName[MAX_PATH];
char Lesepuffer[MAX_BUFFER_LENGTH];
char SuchString[iSuchString];if(argc == 1)
return 1;strcpy(DateiName, argv[1]);
// Dateigröße ermitteln
FileSize = GetFileSize(DateiName);
if(FileSize == 0xffffffff)
return 0;// Dateigröße ausgeben
printf("Dateigroesse: %d bytes\n\n", FileSize);// Datei zum lesen öffnen
fp = fopen(DateiName, "r");
if(fp == NULL)
{
printf("Fehler beim Öffnen der Datei %s!\n\n", DateiName);
return 1;
}// Datei zeilenweise einlesen
while(fgets(Lesepuffer, MAX_BUFFER_LENGTH, fp) != 0)
{
// Zeile ausgeben
printf("%s", Lesepuffer);BOOL bgefunden = FindString(Lesepuffer, "Test");
}// Datei schließen
fclose(fp);
return 0;
}
-
weils kein C# ist