Q&A

  • 함수값전달
함수에서 변수형이 TextFile 인경우 그 값을 리턴할려면 어캐해여 ?
예로..

var
txt:TextFile ;

AssignFile(txt, 'test.txt');

이렇게 됐을경우

result:=txt;

이렇게 할려구 하는데 어캐해야 하는지..


정리하면

procedure text;

var
ss:text;

begin

ss:=text();

while Eof (ss) do begin

//  reading file..

end;

end;



fucntion text():Text;  --->이게 맞나여 ? 물론 unit 에서 함수정의는 해줬다는 가정하에..아 덧붙여서 배열은 어캐 리턴하나엽..


var
txt:Textfile;
begin

AssignFile(txt, 'test.txt');

result:=txt;  -----> 요길 어캐

end;
1  COMMENTS
  • Profile
    홍성락 2002.09.11 20:05
    hsr/////////////////////////////////////////////////////////////////
    1.Textfile형식은 헬프에 fucntion의 결과로는 넘길수없다고 나옵니다.
    따라서 procedure나 fucntion의 함수의 인자로 넘겨야할거 같습니다.
    procedure TForm1.text(var txt:Textfile);
    begin
        AssignFile(txt, ExtractFilePath(Application.ExeName) + 'test.txt');
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var
        f_h : TextFile;
        str : string;
    begin
        text(f_h);
        Reset(f_h);
        while not Eof(f_h) do begin
           Readln(f_h, str);
           Memo2.Lines.Add(str);
        end;
        Closefile(f_h);
    end;
    ------------------------------------------------------------------
    2.배열형은 Type형으로 넘겨보았습니다.
    먼저,
    type
       ArrayType = array[0..9] of Char;
    을 선언한후,
    function str_array : ArrayType;
    begin
        result := '0123456789';   //('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
    end;

    procedure TForm1.Button4Click(Sender: TObject);
    var
        s_a : ArrayType;
    begin
        s_a := str_array;
        Memo2.Lines.Add(str_array);
        Memo2.Lines.Add(s_a);
    end;