如何把一个字符串存入文件?
如何把edit和memo中的text存入文件?另外,如何从一个文件中读一个字符串出来?

解决方案 »

  1.   

    你想存到什么文件中。memo1.Memo1 .Lines .SaveToFile()
      

  2.   

    先建立一个txt文件
    然后向这个文件中追加记录就好了吧。
      

  3.   

    var
      F: System.TextFile; 
      S: String;
     begin
      AssignFile(F, FileName); 
      Reset(F);
      while not Eof(F) do
      begin
        Readln(F, S);                        
      end                
        CloseFile(F);
      

  4.   

    Memo1 .Lines .SaveToFile()
    Memo1 .Lines .loadfromFile()
      

  5.   

    var 
    Filel:Tstrings;
    i:integer;
    begin
    Filel:=Tstringlist.creat;
    Filel.loadFromFile('c:\xxx.txt');
    For i:=0 to File.count-1 do 
     showmessage(File.string[i]);
      

  6.   

    memo1.Lines.SaveToFile('sdf.txt');    
    //把memo1中的字符存到sdf.txt文件中
      

  7.   

    文本文件的处理。文本文件是最常用的一种文件格式,Delphi为我们在System单元中提供这种类型,所以我们就没有必要再去定义了,直接使用如: Var myfile:Textfile。下面我们谈谈对它的操作。声明一个文本文件类型的变量,用AssignFile方法将文件变量与文件名关联,然后我们就可以进行操作了,文件名 既可以是全路径名,也可以仅是文件名,对于后者系统将在当前目录下查找。文本文件是以行为单位进行读、写操作的。由于每一行长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。有以下几种情况:1. 使用Reset : 打开文件并把文件指针移动到文件首,用于读操作;2. Rewrite : 创建一个新文件用于写操作;3. Append : 打开存在的文件并把文件指针定位在文件尾,用于追加。读操作常用过程:从文本文件中读取信息用Read、Readln两个标准过程。Read:对文本文件,读一个或多个值到一个或多个变量中,Readln: 执行Read过程,然后跳到文件下一行。当读入数值时,Read、Readln假定数值是用一个或多个空格分开的,而不是逗号、分号或其它字符。例如语句:Read ( myfile , n1 , n2 , n3 ) ;如果文件中的内容为25 35 45 (三个数字空格分开),则能够成功读入,而若文件中的内容是:25 35, 45,则Read读入“35,”并试图把它转化成一个数值时会引发一个异常。当读入字符是字符串时,Read、Readln过程总是读取尽可能多的字符填充到字符串变量中或一直读到行结束符为止。因此从文本文件中读取格式化的字符串数据,必须声明与其长度相匹配的字符串变量。如果要从文件中读取单词,必须先把文件中的每一行读入字符串,然后再从字符串中逐个分析出单词。或者一次只从文本文件中读入一个字符并测试每个字符后是否是单词断开处。格式化字符串之间的分隔符应读入到一个临时变量中,而字符串与数值、数值与数值间的分隔符读入时会自动识别剔除。对这行数据:Mon 12:10 40 50,定义如下:var Day: string[3] ; Time: string[5] ; Num1, Num2: Integer ; 则须用如下的read 语句读入:read ( TextFileVar , Day , tmp , Time , Num1 , Num2 ) ;tmp为一个临时字符变量,因为DAY和Time是格式化字符串,必须将它们之间的分隔符读到临时变量中,因为DAY和Time的值后是不允许出现空格的。写操作过程:一般使用Write和 Writeln命令。 Write 命令可写一个或多个值到文件中 , Writeln 命令执行Write过程,然后输出一行结束标志。再提醒一次,写完之后,不要忘记关闭文件。例句: Writeln(myfile ,’年龄’,’ ‘,’25’); 其他数据类型的文件处理。前面我们提到,文件是有各种类型的,虽然常用的是文本文件,但如果用文本文件来保存数字,由于文本文件占用的磁盘空间大,读写时可能还要进行文本到数字的转换,不如使用如整数型、实数型文件来得方便。文本型的文件有一点好处就是可以用文字处理器直接打开查看,而其他类型的文件一般表现为二进制文件,不能直接查看。下面我们简单谈一下记录文件。记录文件是一种操作更为灵活的文件类型。它允许同时为读和写打开,而且由于记录文件中每条记录的长度固定,所以可随机存取。记录文件有点类似于数据库文件,如果你的记录文件中的记录很复杂且很多,建议采用数据库文件。将数据保存成其他类型的文件,只需定义相应的文件类型就可以了,其他的操作没有什么不一样。下面重点讲一下对于二进制文件的读写操作中常用的一些过程和函数。先再介绍一个打开文件的函数FileOpen,此函数的定义如下: function FileOpen(const FileName: string; Mode: Integer): Integer; 其中FileName是要打开的文件名,Mode是打开模式,打开模式常用的有这么几种:fmOpenRead(用于只读)、fmOpenWrite(用于只写)、fmOpenReadWrite(用于读写),其余的较少用,读者可看帮助文件。此函数返回的是文件的句柄,可以这样判断,如: FileHandle := FileOpen(myfile , fmOpenWrite ); if FileHandle > 0 then 文件打开成功与此对应的还有FileCreate 用于创建一个给定文件名的文件并返回文件句柄,FileClose : 关闭一个特定句柄的文件。FileOpen等主要供系统内部使用,在文件复制的编程中往往会用到。它们操作的对象是文件句柄而不象Reset那样操作的是文件变量。对于不同的打开方式对应着不同的读写方法。 在对二进制文件读写之前关键是要进行定位,因为在对一个二进制文件读写之前用户要知道文件的全部结构或部分结构(复制文件无需知道其结构),这样用户才能去从中读写相应的信息。要定位其实就是移动文件指针到指定的位置,下面是常用的函数介绍(详细语法可参看帮助文件): Seek:把文件当前位置移到指定部分FilePos:返回文件的当前位置EOF:返回文件结束标志FileSeek: 改变当前文件指针的位置 Seek与FileSeek的区别是:1. Seek仅用于记录文件;2. FileSeek的参数是文件句柄、偏移量、起始位置。其中起始位置有文件首、当前位置、文件尾三种选择。Seek的参数是文件变量、偏移量,偏移量是从文件首开始定位的。3. FileSeek的偏移量以字节数来计算,而Seek是根据记录号进行移动。 Seek、FilePos仅用于记录文件,但任何文件都可以看作是基于字节的记录文件,也就是说我们可以将每个字节看作为一个记录。读写的一般过程是:打开文件之后,用Seek或FileSeek将文件指针定位到要读写的位置,然后使用Read、Write、FileRead、FileWrite等函数读写文件内容。注意:在移动指针前用户应该用EOF函数判断一下是否已到文件尾,若到文件尾再向后移动指针就会出现错误。心铃建议:用FileOpen打开文件、FileSeek 改变文件指针的位置、用FileRead读取所需内容(读取少量内容很方便),这几个函数是属于较底层的函数,但对二进制文件的读写较方便。其他一些处理文件的函数和过程还很多,篇幅所限,读者去看帮助文件吧。