首页
社区
课程
招聘
[求助]DELPHI这段代码怎么才对
发表于: 2009-1-17 19:13 7274

[求助]DELPHI这段代码怎么才对

2009-1-17 19:13
7274
代码目的:从c:\a.txt读出文字,要把里面的每个字都转成unicode形式存起来,可是我这个怎么总是只转换两个字就不转了?

procedure TForm1.Button4Click(Sender: TObject);
var
  k:string;
  sl:TStringlist;
  sltemp:TStringList;
  i:integer; //遍历每行
  j:integer; //遍历每行以空格拆分的字符串
begin
  sl:=TStringlist.Create; //存储载入的文本文件
  sltemp:= TStringlist.Create; //存储每行的内容

  sl.LoadFromFile('c:\a.txt'); //把文件载入变量sl
  for i:=0 to sl.Count-1 do //逐行处理
  begin
    sltemp.Clear;
    sltemp.CommaText:=sl.Strings[i];
    for j:=0 to sltemp.count-1 do
      begin
        //取出并显示每个字符串
        k:=(Format('%x%x',[ord(sltemp.strings[j][1]),ord(sltemp.strings[j][2])]));
        memo1.Lines.add(k);
      end;
  end;
sl.Free;
sltemp.Free;
end;

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (26)
雪    币: 559
活跃值: (354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以用delphi调试一下看看
2009-1-17 22:03
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
不太明白你想做什么。将你的代码略加修改了一下,你看看是不是你想要的。
procedure TForm1.Button1Click(Sender: TObject);
var s1,s2:TStringList;
    i,j:Integer;
    k:String;
begin
  s1 := TStringList.Create;
  s2 := TStringList.Create;
  try
    s1.LoadFromFile('a.txt');
    for i := 0 to s1.Count - 1 do
    begin
      s2.Clear;
      j := 1;
      s2.Text := s1.Strings[i];
      k := '';
      while j <= Length(s2.Text) do
      begin
        k := k + Format('%x%x',[Ord(s2.Text[j]),Ord(s2.Text[j+1])]);
        inc(j,2);
      end;
      Memo1.Lines.Add(k);
    end;
  finally
    s1.Free;
    s2.Free;
  end;
end;
2009-1-17 22:09
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我是想做个把 一段中文  转成  一大篇  UNIcode  形成互相转换的功能
2009-1-17 22:13
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这段代码的确成功了,但还有一个问题.这个逆转换怎么写..

就是unicode再转回汉字
2009-1-17 22:24
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
function EnCrypt(s:TStringList):TStringList;
var i,j:Integer;
    s1,s2:String;
begin
  Result := nil;
  if s = nil then
    Exit;
  Result := TStringList.Create;
  for i := 0 to s.Count - 1 do
  begin
    s1 := s.Strings[i];
    s2 := '';
    for j := 1 to Length(s1) do
    begin
      s2 := s2 + IntToHex(Ord(s1[j]),2);
    end;
    Result.Add(s2);
  end;
end;

function DeCrypt(s:TStringList):TStringList;
var i,j:Integer;
    s1,s2:String;
begin
  Result := nil;
  if s = nil then
    Exit;
  Result := TStringList.Create;
  for i := 0 to s.Count - 1 do
  begin
    s1 := s.Strings[i];
    s2 := '';
    j := 1;
    while j <= Length(s1) do
    begin
      s2 := s2 + Char(StrToInt('$' + s1[j] + s1[j+1]));
      inc(j,2);
    end;
    Result.Add(s2);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var s1,s2:TStringList;
begin
  s1 := TStringList.Create;
  s2 := nil;
  try
    s1.LoadFromFile('a.txt');
    s2 := EnCrypt(s1);
    Memo1.Lines.Assign(s2);
    Memo1.Lines.SaveToFile('b.txt');
  finally
    s1.Free;
    s2.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var s1,s2:TStringList;
begin
  s1 := TStringList.Create;
  s2 := nil;
  try
    s1.LoadFromFile('b.txt');
    s2 := DeCrypt(s1);
    memo2.Lines.Assign(s2);
    Memo2.Lines.SaveToFile('c.txt');
  finally
    s1.Free;
    s2.Free;
  end;
end;
2009-1-17 23:09
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哇,小虾太厉害了, 一会 我试试,能注释一点么,我也好读读这段是怎么编的
2009-1-17 23:20
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
这两段代码应该很简单。
EnCrypt函数的功能主要是取出每一行的字符串,然后用依次取出每一个字符的ASCII码并用IntToHex函数转换成String类型。

DeCrypt函数的功能就是取回被转换成String类型的ASCII码字符再用StrToInt转回ASCII码。
2009-1-17 23:40
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好吧,我研究下可以加我的QQ吗.   86822327 感谢~

果然是雷锋~
2009-1-17 23:54
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
10
QQ我很少上线,加了也没什么用。还在论坛上讨论比较好啊。
2009-1-18 00:13
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
好吧,谢谢了,我得睡了,明天要好好研究你这段代码,我是想很久也没成,(其实就两个晚上)

..你是DELPHI程序员么.希望明天能和你请教几个题外话
2009-1-18 00:23
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
12
换用Delphi 2009,TStringList已经加了这个功能:
var
  s:TStrings;
  ecode:TEncoding;
begin
  ecode:=TEncoding.Create;
  s:=TStringlist.Create;
  s.LoadFromFile('C:\a.txt', ecode.Unicode); // 修改成a.txt的编码方式
  s.SaveToFile('C:\b.txt', ecode.Unicode);
  s.Free;
  ecode.Free;
end;

具体看:
be6K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0T1M7#2)9J5k6h3y4G2k6r3g2Y4k6h3q4J5i4K6u0V1j5$3&6Q4x3X3g2U0L8$3#2Q4x3V1k6$3K9h3g2%4N6r3S2J5k6h3q4V1i4K6u0W2M7r3S2H3i4K6y4r3N6r3W2V1i4K6y4p5y4K6x3J5
2009-1-18 09:10
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
那你知道哪有免费的2009下载吗?有多大?
2009-1-18 09:23
0
雪    币: 296
活跃值: (89)
能力值: ( LV15,RANK:340 )
在线值:
发帖
回帖
粉丝
14
这个真有点大,好像半完整版就有2GB+
不过好处还是很多的,比如这次Indy10有源代码了,不会的可以直接Ctrl+点进去看代码。

你可以去盒子的资源板看看,应该有精简版的下载。
4c0K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0T1M7#2)9J5k6e0u0U0j5$3y4Q4x3X3g2U0L8$3#2Q4x3V1k6V1k6h3k6S2N6h3I4@1i4K6u0W2j5i4y4H3i4K6y4r3M7X3!0G2L8h3W2V1i4K6y4p5x3e0b7I4
2009-1-18 09:31
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
那还是不下了...用我的2007将就几天就工作去了
2009-1-18 09:38
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
16
不是,只是一个业余的爱好者。
2009-1-18 10:21
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
那你精通什么语言啊,C、ASM你好像都很厉害吧
2009-1-18 10:34
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
18
说到精通,好像没有,大多都只是略懂一二。主要原因还是贪多嚼不烂造成的。
2009-1-18 10:41
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
哦那小虾我主要用DELPHI编程, 用OD破解.OD里的汇编总看不懂算法,

如何提高汇编 水平有什么好书吗
2009-1-18 10:48
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
20
我的做法就是用C或Delphi中写算法代码(先从简单再到复杂),然后再在C或Delphi的源码级调试时打开CPU窗口调试看汇编代码的操作来学习(当然前提是你最少也要懂得汇编基本指令的用法功能)。
2009-1-18 10:54
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
哇,这方法的确不错。。你破解应该也相当厉害吧, 我也这样学。
2009-1-18 11:33
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
22
我已经落伍,有一年多时间没怎么接触破解了。
2009-1-18 11:49
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
那你现在是做程序工作么?还是什么工作
2009-1-18 12:03
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
24
我不是做程序工作,我现在主要是在某个单位做资料的管理工作,只是过年单位比较清闲,所以我现在比较空闲一点。
2009-1-18 12:15
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
哦。编程这么厉害竟不是做程序的。。。
2009-1-18 12:26
0
游客
登录 | 注册 方可回帖
返回