|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
moom (小新啊) |
▲▲▲△△ |
-
|
普通会员 |
|
2018/7/13 15:19:19 |
标题: |
请问:如何把大量字符串按格式加入到 pas 文件中? |
浏览:1468 |
|
加入我的收藏 |
楼主: |
我有一个 txt 文件,格式如下:大概有1~2万行 asdfdasfds asdffdsfd3 32ferfefe 24233425353 ddfdgdgfdgf ..........
我想把这些内容 全部复制到 pas 文件内, 如: const C1: string = 'asdfdasfds asdffdsfd3 32ferfefe 24233425353 ddfdgdgfdgf ..........' 只用 前后 加 '' 不能编译..
请问有什么方法 可以简单快捷 加到 pas文件里面?
即 保留分行 ,而不用每行都加 ''+ 如这样,..否则工作量就太大了...不能使用 load txt...方法 const C1: string = 'asdfdasfds'+ 'ddfdgdgfdgf'+ '..........'
----------------------------------------------
谢谢各位大大 |
作者: |
|
2018/7/13 15:34:19 |
1楼: |
写成 const c1 : array[1..100000] of string = 'asdasfasdf,'+ 'asdasfasdf,'+ 'asdasfasdf,'+ 'asdasfasdf';
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
|
作者: |
|
2018/7/13 15:35:35 |
2楼: |
写一个程序把大量文字排版好,复制粘贴
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
|
作者: |
|
2018/7/13 17:06:35 |
3楼: |
2 楼正解,语法有点错误,稍微改改就行。 string 是有长度限制的 2G个字节以内。 但是 代码中的 'xxx' 这个 xxx 更有长度限制,比 string 的长度还少很多。 具体多少忘了。 所以,用 string 数组,才是比较好的写法。 希望数组没有个数限制吧。
关键你这样做,一个 EXE 80% 的内容就是你的字符串了。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2018/7/13 18:50:46 |
4楼: |
还有一个方法,用 Notepad ++ 作多行一次性修改。 Alt + shift 再用上下左右 page up page down 每一行头都加上 text.add(' 行尾加上 '); 那在 Delphi 上就用 Text 去取代 String,当然 Memo Array 等都可以。
Notepad ++ 这功能一直是用户要求 Delphi IDE 加上的。逐行修改太烦人了。
----------------------------------------------
-
|
作者: |
|
2018/7/13 18:54:02 |
5楼: |
当然若未用过又时间急需的话,写一个小程序去修改也不需多少时间吧。 否则真的应会用 Notepad ++ 这功能,工作省时不少。
----------------------------------------------
-
|
作者: |
|
2018/7/13 19:17:32 |
6楼: |
方法1,\r\n ctrl+f,调出替换对话框,查找\r\n; 替换为:xxx(要添加的特殊字符); 扩展(\n,\r,\t,\0,\x...) 循环查找,向下 执行替换。
方法2,正则法 正则表达式下,$表示行尾,^表示行首.(记得选择“正则表达式”的选中框)
----------------------------------------------
-
|
作者: |
moom (小新啊) |
▲▲▲△△ |
-
|
普通会员 |
|
2018/7/13 21:05:57 |
7楼: |
谢谢楼上各位...
改格式后,复制进 pas, c:string:='xxxxxxxxxx'
delphi 直接退出了...呵呵..
用数组就没有问题...
谢谢各位....
----------------------------------------------
谢谢各位大大
|
作者: |
moom (小新啊) |
▲▲▲△△ |
-
|
普通会员 |
|
2018/7/13 21:32:45 |
8楼: |
继续问个问题.......
请问 如何把 数组 load 入 Tstringlist ?
除以下代码,
MyStringList.Clear; For i := Low(MyArray) to High(MyArray) Do MyStringList.Add(MyArray[i]);
有没有 更快的...如: SL.Load(Array) 之类 ??
..谢谢.......
----------------------------------------------
谢谢各位大大
|
作者: |
|
2018/7/14 7:55:30 |
9楼: |
** 老猫已经给你说了不能用 String 的原因 你可用 Stringlist :
animals := TStringList.Create; animals.Add('Cat'); animals.Add('Mouse'); animals.Add('Giraffe');
若用 Array 就是你那方法, 若是从档案抄入, 可用 LoadFromFile, 但你的方法非常笨, 把两万行数据当四万行记忆空间去处理.
请将手册网址 Bookmark 起来, 大家都是先查手册的. http://docwiki.embarcadero.com/Libraries/Tokyo/en/Main_Page http://www.delphibasics.co.uk/ https://www.thoughtco.com/delphi-programming-4133475
----------------------------------------------
-
|
作者: |
|
2018/7/14 8:22:38 |
10楼: |
这样搞。。。 用数据库不行吗?
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
|
作者: |
|
2018/7/14 12:33:34 |
11楼: |
用TStringList的LoadFromFile不就行了吗?为什么一定要写入pas文件?
----------------------------------------------
-
|
作者: |
|
2018/7/14 21:38:56 |
12楼: |
楼主的意思大概是想一个 EXE 搞定,不想发布一个 EXE 外带一个数据文件。否则直接用 LoadFromFile 搞定。
用一个EXE搞定,也不一定要把字符串都放进 pas 文件。用资源文件的方式,编译后,这些个字符串也就在你的 EXE 里面了。
如果用资源文件,请参考:《Windows 下编译 EXE 文件时把一个外部 txt 文件编译到 EXE 里面》,地址:https://blog.csdn.net/pcplayer/article/details/80561260
----------------------------------------------
-
|
作者: |
moom (小新啊) |
▲▲▲△△ |
-
|
普通会员 |
|
2018/7/14 22:44:04 |
13楼: |
谢谢楼上,
确实就只是想 文件 越少越好...
谢谢各位...
----------------------------------------------
谢谢各位大大
|
作者: |
kuei (kuei) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2018/7/15 0:16:54 |
14楼: |
不是有将 EXE、Dll或其他文件封存到资源文件(Using Resource Files)中, 启动后在解开使用的方法吗? 有需要这么大费周章吗?
----------------------------------------------
-
|
作者: |
|
2018/7/16 9:15:48 |
15楼: |
我之前是为了不让这些数据出现在资源里面,写了个工具叫bintopas,先把任意文件转到pas元文件,而且是代码,是使用内联汇编的db指令拼凑出来的。隐蔽性比较好,而且加载速度也比较好。唯一的缺点就是有些文件特别大,转出来的pas也非常大,不要用Delphi打开浏览这个文件,会很卡。
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
xgwzw (hanry) |
★☆☆☆☆ |
-
|
普通会员 |
|
2018/7/28 23:17:30 |
16楼: |
大佬 bintopas 这个工具有下载的么
----------------------------------------------
-
|
作者: |
|
2018/7/29 15:48:58 |
17楼: |
CnPack IDE专家包里有个类似功能。
只要把字符串直接粘贴到编辑器的PAS中,并选中,然后执行CnPack菜单、编码工具集、转换为字符串,应该就能达到楼主所需的效果。
----------------------------------------------
欢迎使用CnPack IDE Wizards http://www.cnpack.org/
|
|