回 帖 发 新 帖 刷新版面

主题:请教,帮帮忙!!!!!!!

我想用文本文件记录数(0-255),也就是用符号表示数据,我遇到的问题是1-255个数据都有符号,虽然某些数据在文本里显示的是空符号,但读取的时候还是可以辨认,可数字'0'
什么符号也没有,请教一下如何用符号记录数字0.
var                      
s:string;
i,i1:integer;
for i:=1 to 255 do
  begin
      s:=s+chr(i);
  end;
memo.Lines.Add(s);//s的值为:   .......    

    上例中如果改为" for i:=0 to 255 do" 后
     s 中什么也没有

    
     


  
               

回复列表 (共6个回复)

沙发

你可以试试256
一个问题发4遍,浪费论坛资源了。。。

板凳

哈哈...  该同志用的是String.....

不说了不说了,上面这句话值5分了

3 楼

不回贴等飞机撞,你也太不公平了.
type 型数据的范围是 1-255 . 256=1+255  
2楼要我试试256你说有意思吗?那样的回答给5分,我学 delphi才3个月你该给我50分.

4 楼

哈哈,注意,1楼和2楼不是同一个人......我只是说我说的“该同志用的是String.....”这句话值5分.....没评论别人的256。。。。。。哈哈

即使你Delphi一天也没有学,但你在另一个贴子里说过你学过C语言,那么,你应该知道String类型(C里虽然没有明确的string类型,但是它的字符数组其实就是字符串,回忆一下,字符数组的最后一个元素是什么?NULL!)是以NULL也就是#0结束的,所以......一个字符序列,如果遇到一个#0就表示这个字符串到此为止...........

因此,你用文本文件存取#0可以,完全可以,但你不能用传统的方法,也就是说不能用string类型来存取,可以考虑一下用TStream......具体自己发挥吧我只是给你提示

还有,我们一直在说“存取”,但存取归存取,可见不可见是另一回事,我没有说存储了就是可见的。呵呵

5 楼

TStream是我的一个提示,这个你可以发挥一下,写出成功的代码后可以贴上来大家共享。这个我就不写了。

给你用另一种思路写了一段代码,你试一下,看一看能不能实现“存取”:

type
  TMyRcd = Array[0..5] of char;

const
  MyRcd1 : TMyRcd = (#2, #1, #0, #9, #8, #10);//假设存取这六个字符
var
  MyRcd2 : TMyRcd;//目前MyRcd2的六个元素全部是#0

procedure TForm1.Button1Click(Sender: TObject);//存入c:\test.txt
var
  F : File of TMyRcd;
begin
  AssignFile(F, 'c:\test.txt');
  ReWrite(F);
  Write(F, MyRcd1);
  CloseFile(F);
end;

procedure TForm1.Button2Click(Sender: TObject);//从c:\test.txt读出
var
  F : File of TMyRcd;
  I : integer;
begin
  AssignFile(F, 'c:\test.txt');
  ReSet(F);
  Read(F, MyRcd2);//此时已读入MyRcd2,也就是说其内容已经与MyRcd1相同
  CloseFile(F);
  for I := Low(MyRcd2) to High(MyRcd2) do//因为是不可见字符,所以我显示的是其ASCII码
    Showmessage(InttoStr(Ord(MyRcd2[I])));
end;

!!!!最后要特别强调,“存取”与“可见不可见”是两码事!

6 楼

1楼在这里,2楼在上面
我理解能力较差,看不懂问题,从你给出的代码上给的建议
顺便问下,type是什么类型?

我来回复

您尚未登录,请登录后再回复。点此登录或注册