Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [ C ] Ordinamento di una struttura da file

    Salve a tutti,
    sto realizzando un anagrafe in C , ho fatto tutte le funzioni di modifica, ricerca, inserimenti etc..

    il programma è stutturato in modo che su una struttura sono indicati i dati personali di ogni persona, questi dati vengono salvati su un file txt ..

    Dopo aver inserito i dati vorrei ordinare il file per cognome quindi avere il file txt sempre ordinato ma trovo dei problemi ... potete darmi una mano ?

    ora inserisco la funzione d'inserimento senza l'ordinamento ... vi ringrazio gia da adesso ..

    //inserisce un nuovo contatto nella anagrafe
    void inserisci (link *anagrafe)
    {

    link ultimo, temp, nuovo;
    system ("cls");
    nuovo = (link) malloc (sizeof(persona));
    if (!nuovo)
    {
    printf ("\n\tMemoria esaurita, impossibile inserire. -invio-\n\n\t");
    return;
    }
    printf ("\n\tInserire il nome:\t");
    scanf ("%s", nuovo->nome);
    printf ("\n\tInserire il cognome:\t");
    scanf ("%s", nuovo->cognome);
    printf ("\tInserire il numero telefonico:\t");
    scanf ("%s", nuovo->tel);
    printf ("\n\tInserire la Data di nascita:\t");
    scanf ("%s", nuovo->data);
    printf ("\n\tInserire lo stato civile :\t");
    scanf ("%s", nuovo->stato_civile);
    printf ("\tInserire il domicilio:\t");
    scanf ("%s", nuovo->domicilio);
    printf ("\tInserire la professione:\t");
    scanf ("%s", nuovo->professione);
    nuovo->sx = nuovo->dx = NULL;
    temp = *anagrafe;
    if (temp)
    {
    ultimo = NULL;

    while ((temp && strcmp(temp->cognome,nuovo->cognome)<0) && (temp && strcmp(temp->nome,nuovo->nome)<0))// Ordina per cognome
    {
    ultimo = temp;
    temp = temp->dx;
    }
    if (ultimo)
    {
    nuovo->sx = ultimo;
    nuovo->dx = ultimo->dx;
    if (ultimo->dx)
    ultimo->dx->sx = nuovo;
    ultimo->dx = nuovo;
    }
    else
    {
    nuovo->dx = *anagrafe;
    (*anagrafe)->sx = nuovo;
    *anagrafe = nuovo;
    }
    }
    else
    *anagrafe = nuovo;

    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì ma la "mano" che chiedi sembra significare che tu voglia tutto il codice pronto per l'uso.

    Questo non è un posto dove si trovano programmatori "pronti per l'uso".

    Devi proporre tu (!) delle soluzioni, indicare dove non funzionano e se hai "particolari" problemi da discutere.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    il problema è che ordina appena inserisci i dati , ma quando esci dal programma rientri e inserisci nuovamente i dati non li ordina insieme agli altri ... esempio
    inserisco

    Alessandro Nesta

    Alessandro Del Piero

    e me li mette in ordine...
    esco dal programma faccio riaprire

    inserisco

    Gianfranco Zola
    Alessandro Matri

    mi ordina questi due ma non lo fa anche con gli altri ....

    quindi avro

    Alessandro Matri
    Gianfranco Zola
    Alessandro Del piero
    Alessando Nesta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.