String Wörter in einer Datei ändern :( ???????????



  • So, ich habe da mal ne kleine Frage zum Dateihandling..

    ICh habe also ein paar Wörter über die Tastertur eingelsen..und auch erfolgreich gespeichert...Kann sie auch wunderbar auslesen 🙂

    So, jetzt meine Farge..ich woll bestimmte Wörter ändern. Also springe ich zu diesem wort und gebe ein neues ein..Aber jetzt passiert folgendes. Die ganze Datei geht irgendwie kaputt...wenn ich sie auslese sind da nur komische Zeichen. wenn ich die Textdatei so öffne steht da zwar das neue wot, aber dahinter ist nur müll und davor ist alles weg.. was nun.

    Hir mein Code (einmal einlesen dann lesen und dann änmdern)

    Ps..sry wenn das bei ändern so komisch aussieht, ich habe versucht mit Skip zu arbeiten..aber davon haber ich keine ahnung..währe nett wenn ichr mit mal erklärt, wie ich die aendern fkt umändern soll 🙂

    void Initialisieren(void)
    {
    int x=0,y=0;
    int index=0;
    FILE *fhd;
    fhd=fopen("c:\\P12A1.txt","wb+");
    char Land[anzahl][max_string_laenge];
    char Stadt[anzahl][max_string_laenge];

    char* Land1[anzahl];
    for(index=0;index<anzahl;index++)
    {
    Land1[index]=Land[index];
    }

    char* Stadt1[anzahl];
    for(index=0;index<anzahl;index++)
    {
    Stadt1[index]=Stadt[index];
    }

    for(x=0;x<anzahl;x++)
    {
    printf("Bitte geben sie ein Land ein : ");
    gets(Land1[x]);
    printf("Bitte geben sie die Hauptstadt an : ");
    gets(Stadt1[x]);
    y=y+1;
    fwrite(Land1[x],sizeof(char),50,fhd);
    fwrite(Stadt1[x],sizeof(char),50,fhd);

    if(strcmp(Land1[x],Stadt1[x])==0)
    {
    x=anzahl;
    }
    }

    fclose(fhd);

    printf(" \nEingabe beendet\n");
    read(y);

    }

    void Aendern(char** Land1,char** Stadt1)
    {
    int x=0,y=0,position=0,skip,distanz_neu,distanz_alt=0;
    FILE *fhd;
    fpos_t akt_pos;
    char Neu[50];
    fhd=fopen("c:\\P12A1.txt","wb+");

    printf("Wenn sie was aendern moechten, dann geben sie bitte die gewuenschte Pos. an : ");
    scanf("%i",&position);

    printf("\nDas Land %s aendern in \t=> ",Land1[position]);

    scanf("%s",&Neu);
    //strcpy(Land1[position],Neu);
    //printf("Die Stadt %s aendern in \t=> ",Stadt1[position]);
    //scanf("%s",&Neu);
    skip=(position)*sizeof(char);
    //fsetpos(fhd,&skip);

    fseek(fhd,skip,SEEK_SET);
    //strcpy(Stadt1[position],Neu);
    fwrite(Neu,sizeof(char),50,fhd);

    //fwrite(Stadt1[2],sizeof(char),50,fhd);
    fclose(fhd);

    printf(" \nEingabe beendet\n");
    }

    void read(int y)
    {

    FILE *fhd;

    char Land[anzahl][max_string_laenge];
    char Stadt[anzahl][max_string_laenge];
    int index=0,x=0,auswahl=0;

    char* Land1[anzahl];
    for(index=0;index<anzahl;index++)
    {
    Land1[index]=Land[index];
    }

    char* Stadt1[anzahl];
    for(index=0;index<anzahl;index++)
    {
    Stadt1[index]=Stadt[index];
    }

    fhd=fopen("c:\\P12A1.txt","rb+");

    for(x=0;x<y-1;x++)
    {
    fread(Land1[x],sizeof(char),50,fhd);
    fread(Stadt1[x],sizeof(char),50,fhd);
    // fclose(fhd);

    printf("%i.\t%s\t\t",x,Land1[x]);
    printf("%s\n",Stadt1[x]);
    //printf("%i.\t%s\t\t",x,Land1[0]);
    }
    fclose(fhd);
    printf("Wollen sie Aenderungen vornehmen ? \n");
    printf("1. Ja\n");
    printf("2. Nein\n");
    scanf("%i",&auswahl);
    if(auswahl==1) Aendern(Land1,Stadt1), read(y);

    }



  • Möchtest Du eine C++ typische oder eine C Typische Hilfe haben ?



  • Verdammt jetztr sag bnicht ich bin schon wieder im falschen forum

    Also ich möchte ne C typische Antwort 🙂




Log in to reply