2010-10-22 19 views
1

ce segment dans mon programme d'abord annonces un client à un fichier texte (déclaré dans les variables publiques) et l'enregistre dans un fichier tex. onbutton1click est le procudere pour rechercher la chaîne qui est dans la zone d'édition et retourner les détails du client pertinents à la note. le client additionnel fonctionne bien et ajoute au fichier texte, cependant quand je cherche, il ne renvoie rien sur le mémo, juste la légende du mémo, memo1. de toute façon je peux résoudre cela? désolé im un newb à cela.chercher un fichier texte le résultat de l'écriture à memo, lazarus

procedure TForm2.btnsaveClick(Sender: TObject); 

    begin 
    cusfname:= edit1.text ; 
    cuslname:= edit2.text; 
    adress:= edit3.text; 
    phone:= edit4.text; 
    password:= edit5.Text; 
    AssignFile(F, 'Data.txt'); 
    append(F); 
    WriteLn(F, cusfname); 
    WriteLn(F, cuslname); 
    WriteLn(F, adress); 
    WriteLn(F, phone); 
    WriteLn(F, password); 
    CloseFile(F); 
    end; 

    procedure TForm2.Button1Click(Sender: TObject); 

    var 

    SearchFile : Textfile; 
    found: boolean; 
    search: string; 

    begin 
    search := edit1.text; 
    Assignfile(SearchFile, 'data.txt'); 
    Reset(SearchFile); 
    found:= false; 
    repeat 
     found:= search = phone 
    until eof(searchfile) or found; 
    if found then 
    memo1.append(phone); 
    memo1.append(cusfname); 
    memo1.append(adress); 
    if not found then 
     showmessage('member not found'); 
    end;       

Répondre

0

demande où sont les instructions read? Dans la fonction write vous avez des instructions Write(), mais dans le code de lecture aucune instruction read()?

+0

début réinitialisation (fichier de recherche); Assignfile (SearchFile, 'data.txt'); Réinitialiser (Fichier de recherche); trouvé: = faux; recherche: = edit1.text; répéter lire (fichier de recherche, téléphone); read (fichier de recherche, nomfichier); lire (fichier de recherche, adresse); trouvé: = search = téléphone jusqu'à ce que eof (fichier search) ou trouvé; si trouvé, puis memo1.append (téléphone); memo1.append (nomfichier); memo1.append (adresse); closefile (fichier de recherche); s'il n'est pas trouvé, alors showmessage ('member not found'); – haz

+0

Pourquoi utilisez-vous read() ici et writeLN() lorsque vous écrivez? –

0

Dans votre code, vous n'avez pas read() à partir du fichier. Dans une autre question similaire (probablement la vôtre): runerror(102) file not assigned? il y a read(). Mais je pense que vous devriez utiliser readln(), ou même mieux utiliser TStringList classe de Classes unité avec sa méthode LoadFromFile() et Lines propriété.