함수에서 변수형이 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.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;