導航:首頁 > 文件處理 > delphi字元串壓縮

delphi字元串壓縮

發布時間:2023-03-29 11:26:05

① delphi XE 10 解壓壓縮文件

沒有的,可以在前端要求加個判斷格式,只有ZIP的才行。或都把.rar的自己轉換成zip

② 請問題各位DELPHI高手,如何在DELPHI中調用winzip來進行壓縮和解壓

裝個borland的Team Source,橘桐在Team Source的安裝目錄下有pascal解宴棗壓縮zip的圓祥坦源碼。或者[email protected]我給你

③ 請教delphi是否有壓縮和解壓字元串函數

有的仔嘩,在zlib單元有 ZCompressStr:壓縮字元串,傳人念拿行字元串,返回TBytes; ZDecompressStr:解壓字元串,傳人TBytes,返敏早回字元串; 具體用法自己查一下

④ Delphi 字元串太長怎麼辦

不會啊,string欄位長度不會存不下這些啊
類型 最大長度 佔用內存
ShortString 255 2-256 向後兼容
AnsiString 大約2^31 4位元組-2G 8位(ANSI)字元
WideString 大約2^30 4位元組-2G 多用戶服務和多語言程序

如果只簡單地用 String 定義字元串,那麼該字元串可能是短字元串也可能是 ANSI 長字元串,這取決於 $H 編譯指令的閉螞值,$H+(預設)代表長字元串(ANSIString 類型)。長字元串是 Delphi 庫中控制項使用的字元串扒汪。
你轎此埋看看是不是編譯指令問題

⑤ 請教delphi是否有壓縮和解壓字元串函數

delphi 內置有 zlib 單元(高版本為 system.zlb),uses 該單元後,可以使用其中的兩個功能函數來完成,以下是示例:


procereTForm1.Button1Click(Sender:TObject);
var
tb:陸頌TBytes;
s:string;
begin
孝緩tb:=ZCompressStr(Edit1.Text);
s:=ZDecompressStr(tb);
ShowMessage('解壓後的字元串巧悉模:'+s);
end;


運行截圖:


⑥ 請教高手Delphi的字元串壓縮演算法!解決了馬上給分

ibear大熊方法改進搜索串,遇到連續的字元,如果符合壓縮的條件(壓縮生成的位元組數小於原數,一般是連續的4個字元或4個字元以上),用一個標志字元(在你的串中不存在的)和 這個字元 和 一個數值來表示空格,數值大小看需要,byte或word如果字元串中有數字的話,在最後還要加一個標志字元.我的考慮迅洞了其他的畝洞枯情況,如果光壓縮空格的話,還是大熊顫物的吧 查看原帖>>

⑦ 是否能用delphi的zlib解壓java gzip壓縮的字元串

可以使用 delphi 與 java 完成數據壓縮還原的交通。
不管是 java還是 delphi,演算法都有現成的控制項,關鍵是要使用同樣的壓縮協議。請參考以下資料:
在Java與Delphi間交互實現Zlib壓縮演算法
http://blog.csdn.net/hexingyeyun/article/details/8678154

⑧ delphi 怎麼來壓縮文件

使用時,需要Zlib.pas和 Zlibconst.pas兩個單元文件,這兩個文件保存在 Delphi 5.0安裝光碟上
InfoExtrasZlib目錄下,此外,在 InfoExtrasZlibObj目錄中還保存了 Zlib.pas單元引用的
Obj文件,把這個目錄拷貝到delphi的lib下,即可。可以適當的改動比如增加目錄壓縮和分文件壓縮,其實就是在文件流前面增加一部分描述結構就是,不多說。使用
時,還要use zlib單元。 兩個函數如下:

procere CompressIt(var CompressedStream: TMemoryStream; const CompressionLevel: TCompressionLevel);
// 參數是傳遞的流和壓縮方式
var
SourceStream: TCompressionStream;
DestStream: TMemoryStream;
Count: int64; //注意,此處修改了,原來是int
begin
//獲得流的原始尺寸
Count := CompressedStream.Size;
DestStream := TMemoryStream.Create;
SourceStream := TCompressionStream.Create(CompressionLevel, DestStream);
try
//SourceStream中保存著原始的流
CompressedStream.SaveToStream(SourceStream);
//將原始流進行壓縮, DestStream中保存著壓縮後的流
SourceStream.Free;
CompressedStream.Clear;
//寫入原始圖像的尺寸
CompressedStream.WriteBuffer(Count, SizeOf(Count));
//寫入經過壓縮的流
CompressedStream.CopyFrom(DestStream, 0);
finally
DestStream.Free;
end;
end;

procere UnCompressit(const CompressedStream: TMemoryStream; var UnCompressedStream: TMemoryStream);
//參數 壓縮過的流,解壓後的流
var
SourceStream: TDecompressionStream;
DestStream: TMemoryStream;
Buffer: PChar;
Count: int64;
begin
//從被壓縮的圖像流中讀出原始的尺寸
CompressedStream.ReadBuffer(Count, SizeOf(Count));
//根據尺寸大小為將要讀入的原始流分配內存塊
GetMem(Buffer, Count);
DestStream := TMemoryStream.Create;
SourceStream := TDecompressionStream.Create(CompressedStream);
try
//將被壓縮的流解壓縮,然後存入 Buffer內存塊中
SourceStream.ReadBuffer(Buffer^, Count);
//將原始流保存至 DestStream流中
DestStream.WriteBuffer(Buffer^, Count);
DestStream.Position := 0; //復位流指針
DestStream.Position := length(VER_INFO);
//從DestStream流中載入圖像流
UnCompressedStream.LoadFromStream(DestStream);
finally
FreeMem(Buffer);
DestStream.Free;
end;
end;

使用的例子如下:
procere TForm1.Button5Click(Sender: TObject);
//把指定文件壓縮然後保存為另外一個壓縮包,
//呵呵,我使用的時候是把後綴改成cab,可以唬一些人吧?
var
SM: TMemoryStream;
begin
if OpenDialog1.Execute then
begin
if SaveDialog1.Execute then
begin
SM := TMemoryStream.Create;
try
Sm.LoadFromFile(OpenDialog1.FileName);
SM.Position := 0;
Compressit(sm, clDefault);
sm.SaveToFile(SaveDialog1.FileName);
finally
SM.Free;
end;
end;
end;
end;

procere TForm1.BitBtn2Click(Sender: TObject);
//把指定的壓縮包解成原來的文件。
var
SM, DM: TMemoryStream;
begin
if OpenDialog1.Execute then
begin
if SaveDialog1.Execute then
begin
SM := TMemoryStream.Create;
DM := TMemoryStream.Create;
try
Sm.LoadFromFile(OpenDialog1.FileName);
SM.Position := 0;
UnCompressit(sm, dm);
dm.Position := 0;
dm.SaveToFile(SaveDialog1.FileName);
finally
SM.Free;
DM.Free;
end;
end;
end;
end;

⑨ 在delphi中如何把大的字元串分成固定大小的幾個小字元串

用Copy啊塌純。

給你隨手租衫圓寫弊塌了一個:

procere TForm1.Button1Click(Sender: TObject);
var
s: String;
s1, s2, s3, s4: String;
i: Integer;
begin
s := '1234567890';

i := 1;
s1 := Copy(s, i, 3);
ShowMessage(s1);
Inc(i, 3);
s2 := Copy(s, i, 3);
ShowMessage(s2);
Inc(i, 3);
s3 := Copy(s, i, 3);
ShowMessage(s3);
Inc(i, 3);
s4 := Copy(s, i, 1);
ShowMessage(s4);
end;

⑩ DELPHI基礎教程:Delphi應用程序的應用(一)[3]

下面是一個簡單的幫助工程文件

[OPTIONS]

CONTENTS=context_string

TITLE=title

PRESS=press_level

ERRORLOG=log_filename

[CONFIG]

BrowseButtons()

胡歲[FILES]

RTF_filename_

RTF_filename_

RTF_filename_

[OPTIONS]

Context_String是內容主題的內容字元串 這一行並不是必須有的 如果沒有第一行 WinHelp把第一個幫助文件的第一個主題作為內容主題

TITLE = title

title是幫助窗口的標題 不要將標題用引號括住 這一行也不是必需要有的 如果沒有 預設的標題是Windows Help

CoMPRESS = Compress level

Compress_level決定工程文件在編譯時是否被壓縮 壓縮後的文件編譯時要花較長的時間

表 為Compress_level的取值

表 Compress_leve的取值及含義

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

取值局含 編譯時間 文件大小

─────────────────────────────

FALSE 快 大(無壓縮)

MEDIUM 中等 中等(高度壓縮)

HIGH 慢 小(無壓縮)

快 大(無壓縮)

慢 小(高度壓縮)

No 快 大(無壓縮)

TRUE 慢 小(高度壓縮)

YES 慢 小(高度褲臘睜壓縮)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ERROR(LOG = log_filename)

log_filename是WinHelp運行時的錯誤輸出文件 如果編譯時工程文件出錯 需要一個記錄錯誤的文件 如果工程文件有這一行 WinHelp在運行時自動創建的文件 如果沒有 錯誤將顯示在屏幕上 但不存入任何文件中

BrowseButton()

如果有這一行 幫助按鈕條中將出現>>和《鍵 要實現順序瀏覽 還需在幫助文件中定義 詳見 節中的插入+腳標

[FILEs]

RTF_filename是 RTF源文件名 所有的RTF文件構成整個幫助系統 每個RTF 應處在

不同的行

lishixin/Article/program/Delphi/201311/25200

閱讀全文

與delphi字元串壓縮相關的資料

熱點內容
思維方式pdf 瀏覽:652
tcc社區app怎麼注冊 瀏覽:935
央視網下載加密 瀏覽:452
命令行訪問伺服器 瀏覽:36
梁加密區箍筋是不是必須封閉箍筋 瀏覽:760
在百度地圖如何定位伺服器地址 瀏覽:570
單片機計數器中斷 瀏覽:296
哈啰安裝文件夾名稱 瀏覽:294
解壓視頻聲控用杯子玩泡沫 瀏覽:740
19年的普通安卓機怎麼樣了 瀏覽:604
如何在app上刷導游題目 瀏覽:861
子彈解壓視頻大全 瀏覽:323
鴻蒙加密等級 瀏覽:806
cocos2dluapdf 瀏覽:493
假的加密鎖靠譜嗎 瀏覽:176
經營聖手伺服器怎麼調 瀏覽:749
arduino手機編程 瀏覽:481
西醫pdf下載 瀏覽:29
後浪電影學院pdf 瀏覽:813
程序員怎麼做到不被人嫉妒 瀏覽:669