Visualizzazione dei risultati da 1 a 8 su 8

Discussione: File di testo pascal

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    2

    File di testo pascal

    Salve a tutti,mi sono avvicinato da poco al mondo della programmazione,e come tutti (credo) ho incominciato con pascal ma,per mia sfortuna ho un problema con i file di testo.
    ho un file di input ad esempio con
    12
    23
    44
    voglio far leggere al pascal il secondo numero come faccio?
    E se ad esempio voglio far leggere la seconda cifra di un numero
    ad esempio del 23 solo il 3?
    Grazie spero che mi aiutate.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    In Pascal i file di testo (e anche negli altri linguaggi, in genere) sono dei file sequenziali e vanno letti in questo modo (sequenziale, appunto).

    Quindi, per leggere il secondo numero, devi prima leggere il primo, scartarlo e leggere il secondo.
    Se tu avessi dei file ad accesso casuale (Random File) questi sarebbero organizzati a record, quindi potresti spostarti direttamente sul record che ti interessa (con Seek).

    Per leggere la seconda cifra del numero, invece, devi prima leggere l'intero numero, poi convertirlo in stringa, quindi leggere il secondo carattere. Oppure, matematicamente, prendi il numero, lo dividi per dieci e prendi la parte intera. Poi sottrai al numero di partenza il risultato sopra ottenuto moltiplicato per 10:
    codice:
    var a, b: integer;
    a := 23;
    b := a div 10;
    b := a - (b * 10); (* Ora in b hai il 3 *)

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    2
    come faccio a trasformare una variabile numerica in string e leggere i caratteri singolarmente?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Per convertire un intero in stringa:
    codice:
    var a: integer;
    var s: String[80]; (* considero una stringa di 80 caratteri *)
    
    a := 23;
    str(a, s); (* Converto il numero e lo salvo in s *)
    Per accedere ad ogni carattere della stringa, la puoi vedere come un array di caratteri: s[1] è il primo carattere, s[2] è il secondo. (In Pascal, se non diversametne specificato, gli array partono da 1).
    Quindi, se vuoi visualizzare il 2° carattere del numero 23 di prima:
    codice:
    Writeln(s[1]);
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    E per editare un file di testo in pascal, cancellando solo i caratteri specificati?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Devi leggere il file, riga per riga, e riscrivere solo quello che ti interessa che venga salvato (evitando, quindi, di scrivere ciò che vuoi eliminare).



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    655
    Invece per concatenarli due file devo usare il file di appoggio no?

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Credo che non sia necessario:
    Se devi concatenare file1 e file2 in quest'ordine (ossia, prima file1 e poi file2) è sufficiente aprire file1 in modalità APPEND (ora non ricordo proprio come si fa), quindi, aprire file2 in modalità sola lettura.

    A questo punto leggi il file2 e, per ogni riga, lo appendi al file1.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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.