2017-04-05 4 views
-1

J'essaie de lire des lignes de plus de 255 caractères à partir d'un fichier avec pascal ligne par ligne. Je ne suis pas autorisé à le lire char par char et je suis collé aux paramètres standard du compilateur pascal libre. Que puis-je faire pour y parvenir? Est-ce même possible? J'ai lu quelques conseils sur l'utilisation de blockread mais je n'ai pas été capable de trouver suffisamment d'informations à ce sujet pour avoir une idée de comment cela se fait.ReadLn à partir du fichier> 255 caractères en pascal

Je suis ouvert à toute suggestion, à condition de respecter mes restrictions.

Merci beaucoup à l'avance acclamations -gladston3

+0

Si vous n'êtes pas autorisé à faire quelque chose, il y a probablement quelque chose dans la description qui indique quel est le but de l'exercice. blockread est possible, ce qui signifie lire le fichier sous forme de données binaires brutes et l'interpréter manuellement. –

Répondre

2

Je ne vois pas tout à fait le problème. Cela fonctionne (Lazarus/FreePascal sur Windows 7):

program Project1; 

const 
    FileName = 'test.txt'; 

procedure WriteLongLines; 
var 
    S: string; 
    T: Text; 
begin 
    S := StringOfChar('#', 350); 
    Assign(T, FileName); 
    Rewrite(T); 
    Writeln(T, S); 
    Writeln(T, S); 
    Writeln(T, S); 
    Close(T); 
end; 

var 
    T: Text; 
    S: string; 

begin 
    WriteLongLines; 
    Assign(T, FileName); 
    Reset(T); 
    while not EOF(T) do 
    begin 
    Readln(T, S); 
    Writeln(Length(S), ' ', S); 
    end; 
    Readln; 
end. 

les lignes sont de 350 caractères de longueur (à savoir> 255). Ils peuvent être lus sans problème. Je n'ai modifié aucun des paramètres standard.

Lazarus v1.6 du 2016-02-14, FPC 3.0.0. Je viens de l'essayer sur OS X. Fonctionne bien aussi. Et cela fonctionne aussi bien dans Ubuntu 16.04.

Hmmm ... Ne me dites pas que vous utilisez des chaînes courtes (255 caractères maximum)?