那样数据多了会很慢procedure TForm1.Button3Click(Sender: TObject); var F: TextFile; s: String; begin AssignFile(F,'c:\1.txt'); Reset(F); while not Eof(F) do begin //add your codes here end; CloseFile(F); end;
happy243(HH) 给你的方法就可以处理的。
用PASCAL传统的读文件方式Readln吧。 //下面是DELPHI帮助里自带的例子。 var F: TextFile; S: string; begin if OpenDialog1.Execute then { Display Open dialog box } begin AssignFile(F, OpenDialog1.FileName); { File selected in dialog } Reset(F); Readln(F, S); { Read first line of file } Edit1.Text := S; { Put string in a TEdit control } CloseFile(F); end; end;
while not Eof(F) do begin //add your codes here end;
用什么代码让它下移一行
procedure TForm1.Button2Click(Sender: TObject); var AFile:TextFile; AStr,FindStr :string; beginAssignFile(AFile,'c:\data.ini');Reset(AFile); while not eof(AFile) do begin readln(AFile,AStr); showmessage(AStr); end;
ini文件有专门的函数! procedure read_code(filename:string); var book:textfile; str:string; begin assignfile(book,filename); reset(book);//读状态 try while not eof(book) do begin readln(book,str);//读下一行 str:=trim(str); end;//while finally closefile(book);end; end;
外加:(不适合高速运算) (拆分字符,才分符号,类型) e.g: str:=mike 2003-3-5 Gshow_title(str,' ',1) 返回 2003-3-5 Gshow_title(str,' ',2) 返回 mike function Gshow_title(str:Ansistring;feng:char;lei:integer):string; var i,k:integer; begin str:=trim(str); //feng:=trim(feng); case lei of 1:begin//拆除单项,在后 k:=0; for i:=1 to length(str) do begin if str[i] = feng then k:=i+1; end;//for result:=copy(str,k,length(str)); end;//1 2:begin//拆除单项,在前 k:=0; for i:=1 to length(str) do begin if str[i] = feng then k:=i-1; end;//for result:=copy(str,1,k); end;//2 3:begin//拆除单项,在前 k:=0; for i:=1 to length(str) do begin if str[i] = feng then begin k:=i-1; break; end; end;//for result:=copy(str,1,k); end;//3 4:begin//拆除单项,在后 k:=0; for i:=1 to length(str) do begin if str[i] = feng then begin k:=i+1; break; end; end;//for result:=copy(str,k,length(str)); end;//4 5:begin//存在 k:=0; for i:=1 to length(str) do begin if str[i] = feng then begin k:=1; break; end; end; if k = 1 then result:=uppercase('true') else result:=uppercase('false'); end;//5 6:begin k:=0; for i:=1 to length(str) do if str[i] = feng then k:=k+1; result:=inttostr(k); end;//6 end; end;
var
F: TextFile;
s: String;
begin
AssignFile(F,'c:\1.txt');
Reset(F);
while not Eof(F) do
begin
//add your codes here
end;
CloseFile(F);
end;
//下面是DELPHI帮助里自带的例子。
var F: TextFile;
S: string;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(F, OpenDialog1.FileName); { File selected in dialog }
Reset(F);
Readln(F, S); { Read first line of file }
Edit1.Text := S; { Put string in a TEdit control }
CloseFile(F);
end;
end;
begin
//add your codes here
end;
用什么代码让它下移一行
var
AFile:TextFile;
AStr,FindStr :string;
beginAssignFile(AFile,'c:\data.ini');Reset(AFile);
while not eof(AFile) do
begin
readln(AFile,AStr);
showmessage(AStr);
end;
procedure read_code(filename:string);
var book:textfile;
str:string;
begin
assignfile(book,filename);
reset(book);//读状态
try
while not eof(book) do begin
readln(book,str);//读下一行
str:=trim(str);
end;//while
finally closefile(book);end;
end;
(拆分字符,才分符号,类型)
e.g: str:=mike 2003-3-5
Gshow_title(str,' ',1) 返回 2003-3-5
Gshow_title(str,' ',2) 返回 mike
function Gshow_title(str:Ansistring;feng:char;lei:integer):string;
var i,k:integer;
begin
str:=trim(str);
//feng:=trim(feng);
case lei of
1:begin//拆除单项,在后
k:=0;
for i:=1 to length(str) do begin
if str[i] = feng
then k:=i+1;
end;//for
result:=copy(str,k,length(str));
end;//1
2:begin//拆除单项,在前
k:=0;
for i:=1 to length(str) do begin
if str[i] = feng
then k:=i-1;
end;//for
result:=copy(str,1,k);
end;//2
3:begin//拆除单项,在前
k:=0;
for i:=1 to length(str) do begin
if str[i] = feng
then begin
k:=i-1;
break;
end;
end;//for
result:=copy(str,1,k);
end;//3
4:begin//拆除单项,在后
k:=0;
for i:=1 to length(str) do begin
if str[i] = feng
then begin
k:=i+1;
break;
end;
end;//for
result:=copy(str,k,length(str));
end;//4
5:begin//存在
k:=0;
for i:=1 to length(str) do begin
if str[i] = feng
then begin
k:=1;
break;
end;
end;
if k = 1
then result:=uppercase('true')
else result:=uppercase('false');
end;//5
6:begin
k:=0;
for i:=1 to length(str) do
if str[i] = feng
then k:=k+1;
result:=inttostr(k);
end;//6
end;
end;