如何在delphi中操作文件的读与写?
  
我刚开始接触delphi,如何在delphi中操作文件的读与写,哪位朋友指教一下非常感谢!最好来段源码.

var f:text;
...
  AssignFile(f,'c:/1.txt');
  ReWrite(f);
  Writeln(f,'This is a test');
  CloseFile(f);
...
  其中Rewrite是新建文件,若换成Reset则为打开文件
 Writeln为行写入并换行,Write为写入不换行,Readln为读一行并换行,Read为读但不换行

delphi 读写文件方法有很多种:
我送你一贴:
程序设计当中我们时常遇到需要处理文件、目录及驱动器的情况,本章将对如何处理不同类型的
文件进行讲述。本章包括如何使用T F i l e S t r e a m 类封装文件的输入/输出以及如何利用3 2 位Wi n d o w s 的主要特征—内存映射文件。你将学习到如何创建一个封装了内存映射文件功能的T M e m o r y M a p p e d F i l e类,并用它在文本文件中进行文本查询。本章还提供了一些关于选择驱动器、在树型目录中查询文件及获取文件版本信息的方法。本章将使你对文件、目录及驱动器有深入的认识。
处理文件的输入/输出
你将要对三种文件进行处理:文本文件、类型文件和二进制文件。以下几节是关于文件输入/输出
的讲解。文本文件指可被任意文本编辑器读取的A S C I I 文本。类型文件指包含由程序员定义的数据类型的文件。二进制文件包含了其他所有的类型,它是对包含任意格式或无格式数据的文件的统称。
文本文件的处理
本节讲述使用内建于Object Pascal 运行时库中的过程和函数处理文本文件的方法。在对文本文件进行任何处理之前,首先要打开此文本文件。声明变量:通过此变量可以来引用一个文本文件。
打开一个文件需要两步:首先是A s s i g n F i l e ( ) ,它可以将文件变量与一个文件关联起来。例如:这时,你可以进行第二步:打开文件。有三种方式打开文件:使用R e w r i t e ( )过程创建并打开文件;对于一个已存在的文件,此操作将使文件被覆盖;使用R e s e t ( )过程只读地打开一个文件;使用Append() 过程向已存在的文件追加文本。
注意Reset()将以可读写方式打开类型文件和无类型文件。可以使用C l o s e F i l e ( )来关闭一个已打开的文件。下例是各种调用的函数。
文件的打开与关闭
AssignFile :把一个外部文件名和一个文件变量相关联
Reset  :打开一个存在的文件
Rewrite    :创建并打开一个新文件(或覆盖原有文件)
Append   :以添加方式打开一个文件(只适用于文本文件)
CloseFile  :关闭一个打开的文件
FileOpen  :打开一个特定的文件并返回文件句柄
FileCreate  :创建一个给定文件名的文件并返回文件句柄
FileClose  :关闭一个特定句柄的文件
后边三个文件主要供系统内部使用,在文件复制的编程中也往往会用到。它们操作的对象是文件句柄而不是文件变量。
文件定位
Seek:把文件当前位置移到指定部分
FilePos:返回文件的当前位置
Eoln:返回行结束标志
EOF:返回文件结束标志
FileSeek:  改变当前文件指针的位置

还有个问题,如何判断文件已打开?要不要读写完之后就关闭文件,下次读或者写时再打开?

正常情况下是这样

用TFileStream

对于通过Byte数组进行文件操作的,在FTP中经常会使用到,我也是在Delphi调用Web Service进行文件的上传和下载时找到这两个函数的,挺好用的,推荐给大家。(申明:非本人所写)

1. 将Byte数组生成文件

procedure ByteArrayToFile(const ByteArray : TByteDynArray; const FileName : string );
var
 Count: integer;
 F: FIle of Byte;
 pTemp: Pointer;
begin
 AssignFile( F, FileName );
 Rewrite(F);
 try
    Count := Length( ByteArray );
    pTemp := @ByteArray[0];
    BlockWrite(F, pTemp^, Count );
 finally
    CloseFile( F );
 end;
end;

2. 将文件生成Byte数组

function FiIeToByteArray(const FileName:string ):TByteDynArray;
const
  BLOCK_SIZE=1024;
var
  BytesRead,BytesToWrite,Count:integer;
  F:File of Byte;
  pTemp:Pointer;
begin
  AssignFile( F, FileName );
  Reset(F);
  try
    Count := FileSize( F );
    SetLength(Result, Count );
    pTemp := @Result[0];
    BytesRead := BLOCK_SIZE;
    while (BytesRead = BLOCK_SIZE ) do
    begin
       BytesToWrite := Min(Count, BLOCK_SIZE);
       BlockRead(F, pTemp^, BytesToWrite , BytesRead );
       pTemp := Pointer(LongInt(pTemp) + BLOCK_SIZE);
       Count := Count-BytesRead;
    end;
  finally
     CloseFile( F );
  end;
end;

function Encrypt(mStr: string; mKey: string): string;
var
  I, J: Integer;
begin
  J := 1;
  Result := '';
  for I := 1 to Length(mStr) do begin
    Result := Result + Char(Ord(mStr[I]) xor Ord(mKey[J]));
    if J + 1 <= Length(mKey) then
      Inc(J)
    else J := 1;
  end;
  {自己加步骤}
end;

function Decrypt(mStr: string; mKey: string): string;
var
  I, J: Integer;
begin
  J := 1;
  Result := '';
  {自己加步骤}
  for I := 1 to Length(mStr) do begin
    Result := Result + Char(Ord(mStr[I]) xor Ord(mKey[J]));
    if J + 1 <= Length(mKey) then
      Inc(J)
    else J := 1;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  cKey1 = '谁想试试怎么破';
  cKey2 = '我可不愿意这样玩(1)我可不愿意这样玩(2)我可不愿意这样玩(3)';
  cKey3 = 'Memo2.Text := Decrypt(Encrypt(Memo1.Text, cKey), cKey);';
var
  S: string; //加密后的字符
begin
  S := Encrypt(Encrypt(Encrypt(Memo1.Text, cKey1), cKey2), cKey3);
  ShowMessage(S);
  Memo2.Text := Decrypt(Decrypt(Decrypt(S, cKey3), cKey2), cKey1);
end;

delphi文件操作相关推荐

  1. DELPHI 文件操作 万一博客

    文件管理类函数(1) //判断文件是否存在 FileExists var f: string; begin f := 'c:/temp/test.txt'; if not FileExists(f) ...

  2. Delphi文件操作函数

    1.IncludeTrailingPathDelimiter和ExcludeTrailingPathDelimiter IncludeTrailingPathDelimiter(const S:Str ...

  3. Delphi 文件操作 AssignFile()

    RAD Studio 10.2.3 测试√ procedure TForm_Tips.Button_AssignFileClick(Sender: TObject); varFileName: str ...

  4. Delphi 文件操作(路径、目录)

    Delphi利用系统环境变量获取常用系统目录 //譬如 %WINDIR% 是表示系统目录的系统变量, 可以这样获取: var s: string; begin s := GetEnvironmentV ...

  5. Delphi的文件操作

    参考自:http://www.cnblogs.com/railgunman/articles/1800318.html Delphi 中默认有input 和 output 两个文件变量,使用可以不用定 ...

  6. 【Delphi入门】文件系统(文件分类 文件文本变量 文件操作 文件流操作)

    文件分类 文本文件(TextFile) & 二进制文件(Flie) 二进制形式存放数据占有存储空间较少,但不直观:文本文件与之相反 文件是由相同类型的数据元素组成的序列.在DELPHI中对文件 ...

  7. python文件处理seek_python文件操作 seek(),tell()

    seek():移动文件读取指针到指定位置 tell():返回文件读取指针的位置 seek()的三种模式: (1)f.seek(p,0)  移动当文件第p个字节处,绝对位置 (2)f.seek(p,1) ...

  8. DELPHI中操作ACCESS数据库

    DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前u ...

  9. Delphi 如何操作Excel

    Delphi 如何操作Excel 摘自:http://wenjieshiyu.blog.163.com/blog/static/10739413201072033115869/ 个人收藏: Delph ...

最新文章

  1. Go复盘--再识Go语言
  2. Bzoj 1391: [Ceoi2008]order 网络流,最大权闭合图
  3. 作为怀孕的亲历者,你觉得最值得分享的经验或者技巧是什么?
  4. 8Linux服务器编程之:chdir()函数和cd命令,getcwd()函数和pwd
  5. P7115-[NOIP2020]移球游戏【构造】
  6. ear的英语怎么念_ear英语怎么读
  7. Git + GitHub 超详细知识笔记整理
  8. 基于Spring Security的认证授权_方法授权_Spring Security OAuth2.0认证授权---springcloud工作笔记133
  9. SQL Server 的本地时间和UTC时间
  10. AjaxControltoolkit学习笔记—PopupControl 使用详解
  11. mysql数据库封装类_基于mysqli封装的数据库类
  12. 从看《长津湖》想到的数字化转型
  13. PLC+智能网关,实现HTTP+JSON/XML+POST/GET请求与解析
  14. linux文件权限说明(drwxr-xr-x)
  15. 【集合论】序关系 ( 偏序关系中八种特殊元素 | ① 最大元 | ② 最小元 | ③ 极大元 | ④ 极小元 | ⑤ 上界 | ⑥ 下界 | ⑦ 最小上界 上确界 | ⑧ 最小下界 下确界 )
  16. NotePad++ 删除重复行
  17. 结构体知识——声明,初始化,成员访问,传参
  18. 西南科技大学计算机综合大纲,西南科技大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  19. oracle dbms是什么意思,我们常使用的Oracle等DBMS等都是什么数据模型?
  20. 00 59秒计时器仿真c语言源程序,单片机0059_秒计时器.doc

热门文章

  1. [开关电源]浪涌电流有点高?我来给你支支招
  2. 论文阅读笔记(4)——《Language Generation with Multi-Hop Reasoning on Commonsense Knowledge Graph》
  3. “胜兵先胜而后求战,败兵先战而后求胜”—系统分析师考试经验谈
  4. 倍福--通知方式实现ADS通信
  5. 互联网公司技术总监工作内容
  6. html留言板原理,js实现留言板
  7. 时间序列预测之移动平均法(MA)
  8. mac无法调节屏幕亮度
  9. python生成二维码,实现零件履历表(微信小程序+python后端+mysql)
  10. excel数字排序1后面是2而不是10