Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050

    [pascal] Manipolazione di un file

    Ciao a tutti.

    Dovrei trovare un algoritmo veloce e pulito che mi permetta di aggiungere ad un file di testo già esistente un carattere ad esempio:
    file PRIMA:
    codice:
    ciao a tutti!
    come state?
    oggi è una bellissima giornata!
    file DOPO:
    codice:
    ciao a tutti!                   ;
    come state?                     ;
    oggi è una bellissima giornata! ;
    Capito cosa voglio dire???

    Grazie...


  2. #2

  3. #3
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    Re: [pascal] Manipolazione di un file

    Originariamente inviato da cso
    codice:
    ciao a tutti!                   ;
    come state?                     ;
    oggi è una bellissima giornata! ;
    nn credo tu riesca a mettere i ; allineati .. nn ricordo molto di pascal .. cmq
    codice:
    f1=apri il file 
    f2=crea altro file
    finche nn sei alla fine
     r=f1.leggi riga
     r:=r+';'
     f2.appendi(r)
    fine while
    chiudi f1 e f2
    copia f2 su f1

  4. #4
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    L'algoritmo l'ho trovato e funziona alla perfezione ma mi sa che ho trovato un bug nel TP.

    Se apro il file, leggo dal file è tutto ok ma al momento della sovrascrittura non funziona e mi lascia il file invariato...

    this is the code :
    codice:
    PROGRAM commenta;
    USES crt;
    CONST N=100;
    
    TYPE generico = RECORD
                      appoggio : string;
                    END;
         classe   = ARRAY[1..N] OF GENERICO;
    
    VAR  conf : TEXT;
         j,i,max : INTEGER;
         c:classe;
    
    begin
    clrscr;
    
    {$I-}
    ASSIGN(conf,'c:\nome_file.txt');
    RESET (conf);
    
    writeln('LEGGE IL FILE');
    
    i:=1;
    WHILE not eof(conf) DO
                        Begin
                        ReadLn(conf,c[i].appoggio);
                        if length(c[i].appoggio)>max then max:=length(c[i].appoggio);
                        i:=i+1;
                        End;
    readkey;
    
    writeln('SCRIVE CONTENUTO FILE');
    
    FOR j:=1 to i do writeln(c[j].appoggio);
    
    readkey;
    max:=max+12;
    
    writeln('MODIFICA RECORD');
    
    for j:=1 to i do
                  begin
                  while (length(c[j].appoggio)<max) do
                                           begin
                                           c[j].appoggio:=c[j].appoggio+' ';
                                           end;
                  Insert(';',c[j].appoggio, length(c[j].appoggio));
                  end;
    readkey;
    
    writeln('SCRIVE IL RECORD MODIFICATO');
    
    FOR j:=1 to i do writeln(c[j].appoggio);
    
    readkey;
    writeln('SCRIVE CONTENUTO FILE MODIFICATO');
    reset(conf);
    
    for j:=1 to i do
                  begin
                  writeln(conf,c[j].appoggio);
                  end;
    
    close(conf);
    
    {$I+}
    readkey;
    end.
    Scusate per l'eleganza a basso livello ma devo ancora passare per la fase "pulizia del codice"

  5. #5
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    in effetti nn si capisce molto quel codice..
    ti conviene aprire 2 file .. in uno leggi nell'altro scrivi e alla fine elimini il 1° e rinnomini il 2° con il nome del primo

  6. #6
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    Mi era passata l'idea per la testa di fare questa cosa ma mi sono puntato troppo su quello che volevo fare...

    Mi sono rassegnato e l'ho fatto con due file e quindi adesso funziona

    Grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.