Formattazione di un file

di il
11 risposte

Formattazione di un file

Buonasera a tutti.
sto realizzando un programma che salva una serie di strutture all'interno di un file .txt. Non riesco a gestire la formattazione delle stringhe all'interno del file; ad esempio le stringhe sono troppo distanti tra loro. qualcuno ha dei suggerimenti da darmi, o del materiale da cui studiare questo tipo di problematiche?
grazie a tutti in anticipo per l'attenzione

11 Risposte

  • Re: Formattazione di un file

    Che vuol dire "troppo distanti"?
  • Re: Formattazione di un file

    Allora mi spiego meglio. Devo salvare all'interno di un file un array di record. Il programma funziona, acquisisce tutti i dati di ogni record e li salva nel file. Solo che dal programma in C non riesco a curare la formattazione del file e quindi quando lo apro trovo le informazioni messe in modo confusionario. c'è un modo per ottenere non dico una tabella, ma qualcosa del genere per rendere tutto automaticamente ordinato sul file?
  • Re: Formattazione di un file

    Allora mostra

    la struttura dati

    il codice che scrive

    il risultato ottenuto

    il risultato atteso
  • Re: Formattazione di un file

    Direi che non c'entra un granchè.
    Da quello che "vagamente" si può intuire stai cercando una sorta di JSON dei poveri, o simili.
    Banalmente scrivi ogni "cosa" in una riga con un a-capo (CR-LF a seconda se vuoi farlo portabile o no)
    Metti all'inizio come primissima riga il numero dei record.
    Usa un segnaposto per le stringhe vuote, tipo $STIRRRRVUUU$$$OOOTTTAAAA$$$$$$
    Questo è l'approccio diciamo così "banale".
  • Re: Formattazione di un file

    Scusatemi tutti se rispondo così tardi, ma per via del mio lavoro mi è difficile collegarmi a internet, e mi scuso anche per la mia scarsa chiarezza, ma sono un "programmatore alle prime armi". comunque ho risolto, era un problema banalissimo, grazie ugualmente a tutti per la disponibilità.
  • Re: Formattazione di un file

    Ciao ragazzi, questo il codice e uno screen di come vengono memorizzati i dati nel file. la domanda era intesa su come ordinare i dati nel file, ad esempio farli comparire intabellati.
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #define MAX 16
    
    typedef struct
    {
    		char codice_fiscale[16];
    		char nome_paziente[MAX];
    		char cognome_paziente[MAX];
    		char birth[11];
    		char placebirth[MAX];
    		char stato_arrivo[12];
    		char diagnosi[30];
    		char referto[50];
    		char coda;
    }prontos_t;
    
    typedef struct
    {
    	char codice_ric[16];
    }
    ricerca_t;
    
    
    
    void inserimento(FILE *prontosoccorso_f);
    void ricercap(void);
    
    
    int
    main ()
    {
    	FILE *prontosoccorso;
    	int scelta,i;
    	
    
    	do
    	{
    			system("cls");
    			printf("********					  MENU OPERAZIONI                    ********\n");
    			printf("********	            1.Inserimento Paziente                   ********\n");
    			printf("********	            2.Ricerca Paziente                       ********\n");
    			printf("********	            3.Cancellazione Paziente                 ********\n");
    			printf("********	            4.Inserimento Referto                    ********\n");
    			printf("********	            5.Paziente Successivo                    ********\n");
    			printf("********	            6.Esci                                   ********\n");
    			printf("*************************************************************************\n");
    		    do
    		    {
    		    	printf("Digitare l'operazione da effettuare --> ");
    		        scanf("%d", &scelta);
    		    }while((scelta<1)||(scelta>6));
    		   prontosoccorso=fopen("prontosoccorso.dat", "a+");
    		   if (prontosoccorso==NULL)
    		        printf("\n\n\n*********** Impossibile aprire il file************* \n\n");
    		   else
    		   {
    		    	 switch (scelta)
    		    	    {
    		    	    case  1:
    		    			inserimento(prontosoccorso);
    		    	    	break;
    		    	    case 6:
    		    	    	printf("\n\n\n\n\n********************PROGRAMMA TERMINATO*********************\n\n\n");
    		    	    	break;
    		    	    }
    		    }
    
    	}while (scelta!=6);
    	fclose(prontosoccorso);
    	system("pause");
    	return (0);
    
    }
    
    
    void inserimento(FILE *prontosoccorso)
    {
        		prontos_t prontos={"","",""};
        		char continua;
        		printf("\nInserire i dati del paziente: ");
    
        			  do
        			    		{
    								fflush(stdin);
    								printf("\nCodice Fiscale --> ");
        			    			fgets(prontos.codice_fiscale, MAX, stdin);
        			    			fflush(stdin);
    								printf("\nNome   --> " );
        			    			fgets(prontos.nome_paziente, MAX, stdin);
    								fflush(stdin);
        			    			printf("\nCognome   --> " );
        			    			fgets(prontos.cognome_paziente, MAX, stdin);
        			    			fflush(stdin);
        			    			printf("\nData di Nascita --> ");
        			    			fgets(prontos.birth, MAX, stdin);
        			    			fflush(stdin);
        			    			printf("\nLuogo di Nascita --> ");
        			    			fgets(prontos.placebirth, MAX, stdin);
        			    			fflush(stdin);
        			    			printf("\nStato di Arrivo Cosciente/Incosciente--> ");
        			    			fgets(prontos.stato_arrivo, MAX, stdin);
        			    			fflush(stdin);
        			    			printf("\nDiagnosi --> ");
        			    			fgets(prontos.diagnosi, MAX, stdin);
        			    			fflush(stdin);
        			    			printf("\nCoda Selezione ordinaria=0 Emergenza=1--> ");
        			    			scanf("\n%d", &prontos.coda);
        			    			fflush(stdin);							
        			    			fwrite(&prontos, sizeof(prontos_t), 1, prontosoccorso);
        			    			printf("\nVuoi Continuare? (s/n)");
        			    			scanf("%c", &continua);
        			    		continua=tolower(continua);
    					}while(continua=='s');
        		fclose(prontosoccorso);
    
    }
    
    
    
    i dati vengono salvati nel file in questo modo

    mrarss87e26l011a mario
    rossi 26/18/1987
    incosciente morto

    io invece vorrei che venissero salvati in maniera ordinata tipo:
    mrarss87e26l011a mario rossi 26/18/1987 incosciente morto

    insomma su un unica riga.
    ringrazio tutti per l'aiuto e scusatemi per le lunghe attese.
  • Re: Formattazione di un file

    eugenio92 ha scritto:


    io invece vorrei che ...
    Quindi hai risolto, come hai detto prima, o no ??
  • Re: Formattazione di un file

    Pensavo di si....invece no
  • Re: Formattazione di un file

    Beh devi essere più chiaro perché non si era capito...

    Dove scrivi i dati su file? Individua le linee di codice dove lo fai ...
  • Re: Formattazione di un file

    Nella funzione inserimento dopo tutti gli fgets, alla linea fwrite
  • Re: Formattazione di un file

    Non usare la fwrite ... Usa la fprintf e passa gli argomenti nel modo ed ordine che ti interessa. E studia la differenza tra le due funzioni.
Devi accedere o registrarti per scrivere nel forum
11 risposte