如何根据文件名中的一部分数据打开该文件。 (100分)

  • 主题发起人 主题发起人 子筠
  • 开始时间 开始时间

子筠

Unregistered / Unconfirmed
GUEST, unregistred user!
我按照接受数据的日期(已转化为字符串,如 020826122112)为文件名,建立了文件,
然后需要再根据该字符串打开该文件,读取她的内容。每个文件有10000组数据,
现在的问题是
1:如何根据一部分数据打开该文件。
2:如何再将该10000组数据存储到一个buf 中。
我是初学delphi的,在这里也是新手。分数不多,以后再补
 
没有人愿意帮我吗?
 
1:什么叫做根据一部分数据打开该文件?
如果我没理解错的话是不是根据文件名的部分字符串打开该文件?
那么你可以遍历你的目录去读文件名,用pos()判断是否是你需要的文件。
会不会写?[:)]
2:你所说10000组数据如果是10000行的话,我想用一个TStringList
就可以了。你试试看吧,这样最简单。
buf := TStringList.Create;
buf.LoadFromFile(FileName);
...
buf.Free;
 
谢谢了。如果我说我不会写呢?那你会不会帮忙帮到底呀
 
天哪,我发现这年头人都很zhuai
我说的这个可是最混的办法。
帮到底了,如果可以就请我吃饭,不行再想办法。[xx(]
procedure TForm1.SearchFiles(CurrentPath : AnsiString; FileNames: TStringList);
var
sr : TSearchRec;
iFound : Integer;
s: string;
begin
iFound := FindFirst(CurrentPath + '*.*', faAnyFile, sr);
while iFound=0 do
begin
if ((sr.Attr and faDirectory) = 0)and(sr.Name<>'.')and(sr.Name<>'..') then
begin
s := sr.Name;
FileNames.Add(s);
end;
iFound := FindNext(sr);
end;
FindClose(sr);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FileNames: TStringList;
buf: TStringList;
i: Integer;
begin
FileNames := TStringList.Create;
SearchFiles(YourPath, FileNames); //你的路径
if FileNames.Count > 0 then
begin
for i := 0 to FileNames.Count-1 do
begin
if pos(YourPartName, FileNames) > 0 then //你的部分字符串,能确定只有一个符合条件么?
begin
try
buf := TStringList.Create;
buf.LoadFromFile(FileNames);
//这里你操作这个buf就可以了
finally
buf.Free;
end;
end;
end;
end;
FileNames.Free;
end;
 
嘿嘿,给你100分还不够呀,如果你来南京我就请你吃饭,这个程序你运行过吗?好像不行吧。估计还是我太笨。
SearchFiles函数里面CurrentPath是对的,可是执行完
if ((sr.Attr and faDirectory) = 0)and(sr.Name<>'.')and(sr.Name<>'..') then
从来就没执行到
s := sr.Name;
FileNames.Add(s);

FILENAME不就一直是空的吗?咋回事?
 
100分有什么用啊,我宁可把我的分都换成饭。
这个程序我运行过,估计是你不知道path应该怎么写,
它应该是这样写的,'c:/MyProject/',不要忘记了最后那个'/'哦。
你可以用这个函数先把Path格式化
function SlashSep(const Path: String): String;
begin
if AnsiLastChar(Path)^ <> '/' then
Result := Path + '/'
else
Result := Path;
end;
至于那个SearchFiles你就不用单步调试了,那是通用的写法。
要不干脆你把你的Project拿给我做得了,我妹就在南京读大学,
让她替我吃饭好了,不过我又不放心这些程序员一个比一个色的。
 
SearchFiles(ExtractFilePath(Application.ExeName)+'LOG', FileNames);
这样写行不行呀,在当前目录下建了一个log文件夹用来存放文件的。
我的PROJECT是一个很大的在线监测系统,要不你给我做一个demo发过来,不就的了,
或者把你的信箱告诉我。我给你发一个DEMO
。放心好了。我是个女生,不会对你妹妹感兴趣的。嘿嘿
我的信箱:kitty_maomao@163.com
 
真服了,不是提醒你了不要忘记了'/',
SearchFiles(ExtractFilePath(Application.ExeName)+'LOG/', FileNames);
你老嘿嘿的就不像好人。
点我的名字不就看到我的信箱了?
不过不要发木马,这几天收到不少。
 
接受答案了.
 
后退
顶部