以行一行的读,找不是数字的,就是名字:可以用if line[n] in [ord('0')..ord('9')] 判断是否是数字.line是这一行的string.

解决方案 »

  1.   

    为什么不用ini文件来存储信息呢?
    section就是身份证号码,这个绝对是唯一的吧
    里面的ident比如'name'就是人名.读写多方便!
      

  2.   

    谢谢,这个分数非你莫属了。我也想了个办法,但是很麻烦,我是从第一个字符到最后一个字符进行判断,是否数字,不是的话是汉字的一半,那将会返回错误。那我将用try语句忽视。这个方法的好处是不用管格式。但是当然,名字还是要在前面。你的方法,后面两个对我来说都不好用。你的第一个方法,能否说详细点。
      

  3.   

    type MyType=record  //定义一个记录类型
     Name:string[10];
     IdNum:Cardinal;  //32位无符号整数
     end;var
     myFile:File of MyType;  //定义你的记录文件
     aa:MyType;  //记录变量
    begin
     assign(myFile,'你的文件名');
     try
      reset(myFile);
      read(myFile,aa);  //读出一个记录
     finally
      closeFile(myFile);
     end;  //end of try
     Edit1.text:=aa.name;  //人名
     Edit2.text:=IntToStr(aa.IdNum); //身份证号
    end;用seek(myFile,n)可以定位到文件中的第n个记录;write(myFile,aa)向文件中写一个记录