Inhalt von Datei kopieren und ordnen



  • tach auch,
    also mein problem ist folgendes:
    eine datei namen.txt (sie enthält namen und geburtsdaten von verschiedenen personen)ist vorhanden und deren inhalt soll ausgegeben werden.
    (soweit ist alles klar)
    dann soll der inhalt der datei in eine andere datei, gordnet.txt, die noch erstellt werden muss, kopiert werden und die einträge sollen alphabetisch gornet werden und dann ebenfalls auf dem bildschirm ausgegeben werde.
    kann mir jemand helfen?!?
    bin anfänger und brauch das für mein studium.
    hier mein bisheriges programm:

    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    void main (void)
    { FILE * datenaus;
    FILE * datenein;
    int c;
    datenaus=fopen("C:\\Studium\\Praktikum Programmiersprachen\\Namen.txt","r");
    while (fscanf(datenaus,"%c",&c)!=EOF)
    printf("%c",c);
    datenein=fopen("C:\\Studium\\Praktikum Programmiersprachen\\Geordnet.txt","w+");
    datenein=datenaus;
    fprintf(datenein,"%d\n");
    fclose(datenein);
    fclose(datenaus);
    }

    vielen dank

    gruß twisteddirk



  • ich mach das immer so, dass ich mir eine Pointer-Liste erstelle, die auf den unsortierten Array zeigt (jeder Pointer zeigt auf ein Element)

    Diese wird dann sortiert. Zahlen verschieben ist schneller als Speicherbereiche. Anschließend geht man die Liste durch und kann das Ganze wegspeichern, oder darin suchen, etc...

    cYa
    DjR



  • HI

    Mein Vorgänger hat dir ja schon was dazu gesagt. Ein problem gibt es nur wenn die Datei so groß ist dass sie nicht mehr in den Speicher passt.

    Ist zwar in deinem Fall wahrscheinlich unwahrscheinlich(schöne Konstruktion 😉 ) aber naja.
    Also schau dich doch mal nach sortieralgorithmen um.
    siehe auch algorithm.h

    Für großen Datein(größer als der Speicher) würde ich Mergesort implementieren.



  • Original erstellt von DocJunioR:
    **ich mach das immer so, dass ich mir eine Pointer-Liste erstelle, die auf den unsortierten Array zeigt (jeder Pointer zeigt auf ein Element)

    Durcheinander!
    Diese wird dann sortiert. Zahlen verschieben ist schneller als Speicherbereiche. Anschließend geht man die Liste durch und kann das Ganze wegspeichern, oder darin suchen, etc...

    cYa
    DjR**

    😕 😕

    danke erstma für die schnelle antwort.
    klingt auch soweit ganz schlüssig.
    aber wie gesagt ich bin absoluter anfänger und wäre für ein paar quellcode zeilen
    sehr dankbar. wenn möglich direkt an mich senden.
    vielen dank

    gruß twisteddirk


Anmelden zum Antworten