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 🤡


Log in to reply