❶ 跪求Delphi的讀寫ACCESS中BLOB欄位(內容為OLE模式的word內容,帶格式)的源碼!!急,謝謝!!
BLOB,長二進制數據;稱OLE欄位,這個欄位類型,可以保存任何WIN系統下的文件,比如壓縮包、可執行程序.exe、視頻文件、動態連接庫等等一切在WIN系統下可以運行的文件。WORD的文檔當然可以保存了,也可以讀出來,很早以前我做了一個文檔保存器,起因是一個朋友說是要看一些黃片,但又不希望別人打開它的電腦時發現它在看黃片,於是我就做了一個,把所有的黃片,都保存在ACCESS中BLOB欄位,這樣要看時,就打開軟體,從資料庫中取出來,在用電腦上的播放器播放。後來我發現所有的WIN系統文件都可以保存其中。我就給這軟體起名文檔保存器。用DELPHI的OleContainer1: TOleContainer;控制項做。WORD文檔就要看你的系統安裝情況了,如果你用完整版本的WIN系統,WORD、EXCEL文檔可以直接在OleContainer1: TOleContainer控制項中顯示。
❷ 用Delphi在word中插入表
一個輸出到模板表格中的例子
uses SysUtils,Windows,ADODB,DB,Word97,OleServer, Classes;
var
sSQL: String;
qry: TADOQuery;
fileN:OLEvariant;
oleGrid: array[1..5] of olevariant;
oWordApp: TWordApplication;
oWordDoc: TWordDocument;
sResult: String;
i: Integer;
begin
qry:= nil;
try
sResult:= ' ';
with qry do
begin
qry:= TADOQuery.Create(nil);
qry.LockType:= ltReadOnly;
//轉換日期范圍
//載入合同項目數據
sSQL:= 'select ProjectName, ProjectCode from FPPro_Project where ProjectID= '+ IntToStr(iProjectID);
db_uPublic_GetRecordset(gConn, sSQL, qry);
if RecordCount= 0 then
begin //如果沒有記錄,退出
qry.Free;
Result:= '沒有找到項目記錄! ';
Exit;
end;
//連接Word
oWordApp:= TWordApplication.Create(nil);
owordDoc:= TWordDocument.Create(nil);
try
oWordApp.Connect;
except
qry.Free;
owordDoc.Free;
oWordApp.Free;
Result:= '你可能沒有安裝Word! ';
Exit;
end;
fileN:= fucGetExePath+ 'Template\基礎資料清單.dot ';
if not FileExists(fileN) then
begin
Result:= '沒有找到模板文件! ';
Exit;
end;
oWordApp.Documents.Add(fileN,emptyparam);
oWordDoc.ConnectTo(oWordApp.ActiveDocument as _document);
oWordApp.Options.CheckSpellingAsYouType:= False; //關閉拼寫檢查
oWordApp.Options.CheckGrammarAsYouType:= False; //關閉語法檢查
oleGrid[1]:= oWordDoc.Tables.Item(1);
oleGrid[1].Cell(1,2).Range.Text:= FieldByName( 'ProjectName ').AsString;
oleGrid[1].Cell(1,4).Range.Text:= FieldByName( 'ProjectCode ').AsString;
sSQL:= 'select FileName, CreateLogon, CreateDate from (FPPro_AddonFile '
+ 'left join FPPro_RFile on FPPro_AddonFile.FileID=FPPro_RFile.FileID) '
+ 'where FPPro_AddonFile.FileType=2 and FPPro_RFile.RelationKind=1 '
+ 'and FPPro_RFile.RID= '+ IntToStr(iProjectID);
db_uPublic_GetRecordset(gConn, sSQL, qry);
oleGrid[1].Cell(6,1).Range.Text:= '共計份數: '+ IntToStr(RecordCount)+ '份 ';
if RecordCount> 0 then
begin
//添加統計項目
First;
i:=4;
while not Eof do
begin
oleGrid[1].Cell(i,1).Range.Select;
oWordApp.Selection.Rows.Add(emptyparam); //插入空行
oleGrid[1].Cell(i,1).Range.Text:= FieldByName( 'FileName ').AsString;
oleGrid[1].Cell(i,2).Range.Text:= FieldByName( 'CreateLogon ').AsString;
oleGrid[1].Cell(i,3).Range.Text:= FieldByName( 'CreateDate ').AsString;
i:=i+1;
Next;
end;
end;
oWordApp.Visible:= True;
oWordApp.WindowState:= 1;
oWordApp.Activate;
end;
qry.Free;
oWordApp.Free;
owordDoc.Free;
Result:= sResult;
except
on e: Exception do
begin
qry.Free;
if owordDoc <> nil then owordDoc.Free;
if oWordApp <> nil then oWordApp.Free;
Result:= e.Message;
end;
end;
end;
❸ 誰能告訴告訴我啊
要這個做什麼:
A
A:對象代碼庫文件
AAM:Authorwareshocked文件
AAS:Authorwareshocked包
ABF:Adobe二進制屏幕字體
ABK:CorelDRAW自動備份文件
ABS:該類文件有時用於指示一個摘要(就像在一篇有關科學方面的文章的一個摘要或概要,取自abstract)
ACE:Ace壓縮檔案格式
ACL:CorelDRAW6鍵盤快捷鍵文件
ACM:Windows系統目錄文件
ACP:Microsoftoffice助手預覽文件
ACR:美國放射醫學大學文件格式
ACT:Microsoftoffice助手文件
ACV:OS/2的驅動程序,用於壓縮或解壓縮音頻數據
AD:AfterDark屏幕保護程序
ADA:Ada源文件(非-GNAT)
ADB:Ada源文件主體(GNAT);HP100LX組織者的約定資料庫
ADD:OS/2用於引導過程的適配器驅動程序
ADF:Amiga磁碟文件
ADI:AutoCAD設備無關二進制繪圖儀格式
ADM:AfterDark多模塊屏幕保護;WindowsNT策略模板
ADP:FaxWork用於傳真數據機的交互安裝文件;AstoundDynamite文件
ADR:AfterDark隨機屏幕保護;SmartAddress的地址簿
ADS:Ada源文件說明書(GNAT)
AFM:Adobe的字體尺度
AF2,AF3:ABC的FlowChat文件
AI:AdobeIllustrator格式圖形
AIF,AIFF:音頻互交換文件,SiliconGraphicandMacintosh應用程序的聲音格式
AIFC:壓縮AIF
AIM:AOL即時信息傳送
AIS:ACDSee圖形序列文件;VelvetStudio設備文件
AKW:RoboHELP的幫助工程中所有A-關鍵詞
ALAW:歐洲電話音頻格式
ALB:JASCImageCommander相冊
ALL:藝術與書信庫
AMS:VelvetStudio音樂模塊(MOD)文件;Extreme的Tracker模塊文件
ANC:CanonComputer的調色板文件,包含一系列可選的顏色板
ANI:Windows系統中的動畫游標
ANS:ANSI文本文件
ANT:SimAntForWindows中保存的游戲文件
API:AdobeAcrobat使用的應用程序設計介面文件
APR:LotusApproach97文件
APS:MicrosoftVisualC++文件
ARC:LHARC的壓縮檔案文件
ARI:Aristotle聲音文件
ARJ:RobertJungARJ壓縮包文件
ART:XaraStudio繪畫文件;CanonCrayola美術文件;ClipArt文件格式;另一種光線跟蹤格式;AOL使用的用Johnson—Grace壓縮演算法壓縮的標記文件
ASA:MicrosoftVisualInterDev文件
ASC:ASCⅡ文本文件;PGP演算法加密文件
ASD:MicrosoftWord的自動保存文件;Microsoft高級流媒體格式(,ASF)的描述文件;可用NSREX打開VelvetStudio例子文件
ASE:VelvetStudio采樣文件
ASF:Microsoft高級流媒體格式文件
ASM:匯編語言源文件,Pro/E裝配文件
ASO:AstoundDynamite對象文件
ASP:動態網頁文件;ProCommPlus安裝與連接腳本文件;Astound介紹文件
AST:Astound多媒體文件;ClarisWorks「助手」文件
ASV:DataCAD自動保存文件
ASX:Cheyenne備份腳本文件;Microsoft高級流媒體重定向器文件,視頻文件
ATT:AT<Group4點陣圖文件
ATW:來自個人軟體的AnyTimeDeluxeForWindows個人信息管理員文件
AU:Sun/NeXT/DEC/UNIX聲音文件;音頻U-Law(讀作「mu-law」)文件格式
AVB:ComputerAssociatesInoculan反病毒軟體的病毒感染後文件
AVI:MicrosoftAudioVideoInterleave電影格式
AVR:AudioVisualResearch文件格式
AVS:應用程序可視化格式
AWD:FaxVien文檔
AWR:Telsis數字儲存音頻文件擴展名格式
Axx:ARJ壓縮文件的分包序號文件,用於將一個大文件壓至幾個小的壓縮包中(xx取01-99的數字)
A3L:Authorware3.x庫文件
A4L:Authorware4.x庫文件
A5L:Authorware5.x庫文件
A3M,A4M:AuthorwareMacintosh未打包文件
A4P:Authorware無運行時間的打包文件
A3W,A4W,A5W:未打包的AuthorwareWindows文件
B
BAK:備份文件
BAS:BASIC源文件
BAT:批處理文件
BDF:WestPointBridgerDesigner文件
BFC:Windows95Briefcase文檔
BG:BackgammonForWindows下的游戲文件
BGL:MicrosoftFlightSimulator(微軟飛行模擬器)的視景文件
BI:二進制文件
BIF:GroupWise的初始化文件
BIFF:XLIFE3D格式文件
BIN:二進制文件
BK,BK
BKS:IBMBookManagerRead書架文件
BMK:書簽文件
BMP:Windows或OS/2點陣圖文件
BMI:ApogeeBioMenace數據文件
BOOK:AdobeFrameMakerBook文件
BOX:LotusNotes的郵箱文件
BPL:BorlardDelph4打包庫
BQY:BrioQuery文件
BRX:用於查看多媒體對象目錄的文件
BSC:MSDeveloperStudio瀏覽器信息文件
BSP:Quake圖形文件
BS1:ApogeeBlakeStone數據文件
BS_:MicrosoftBookshelfFind菜單外殼擴展名
BTM:Norton應用程序使用的批處理文件
BUD:Quicken的備份磁碟
BUN:CakeWalk聲音捆綁文件(一種MIDI程序)
BW:SGI黑白圖像文件
BWV:商業波形文件
BYU:BYU的電影文件格式
B4:HelixNutsandBolts文件
C
C:C代碼文件
C0l:台風波形文件
CAB:Microsoft壓縮檔案文件
CAD:Softdek的DrafixCAD文件
CAL:CALS壓縮點陣圖;日歷計劃表數據
CAM:Casio照相機格式
CAP:壓縮音樂文件格式
CAS:逗號分開的ASCⅡ文件
CAT:Quicken使用的IntellCharge分類文件
CB:Microsoft干凈引導文件
CBI:二進制卷格式文件(用於IBM大型機系統)
CC:VisualdBASE用戶自定義類文件
CCA:cc:郵件文件
CCB:VisualBasic動態按鈕配置文件
CCF:多媒體查看器配置文件,用於OS/2
CCH:Corel圖表文件
CCM:Lotuscc:郵箱(例如「INBOX.CCM」)
CCO:CyberChat數據文件
CCT:MacromediaDirectorShockwave投影
CDA:CD音頻軌道
CDF:Microsoft頻道定義格式文件
CDI:Philip的高密盤交互格式
CDM:VisualdBASE自定義數據模塊文件
CDR:CorelDRAW繪圖文件;原始音頻CD數據文件
CDT:CorelDRAW模板
CDX:CorelDRAW壓縮繪圖文件;MicrosoftVisualFoxPro索引文件
CEL:CIMFast事件語言文件
CER:證書文件(MIMEx-x509-ca-cert)
CFB:Compton的多媒文件
CFG:配置文件
CFM:CotdFusion模板文件;VisualdBASEWindows用戶定製表單
CGI:公共網關介面腳本文件
CGM:計算機圖形元文件
CH:OS/2配置文件
CHK:由Windows磁碟碎片整理器或磁碟掃描保存的文件碎片
CHM:編譯過的HTML文件
CHR:字元集(字體文件)
CHP:VenturaPublisher章節文件
CHT:ChartViem文件;HarvardGraphics矢量文件
CIF:AdaptecCD創建器CD映像文件
CIL:ClipGallery下載包
CIM:SimCity2000文件
CIN:OS/2改變控制文件用於跟蹤INI文件中的變化
CK1:iD/ApogeeCommanderKeen1數據文件
CK2:iD/ApogeeCommanderKeen2數據文件
CK3:iD/ApogeeCommanderKeen3數據文件
CK4:iD/ApogeeCommanderKeen4數據文件
CK5:iD/ApogeeCommanderKeen5數據文件
CK6:iD/ApogeeCommanderKeen6數據文件
CLASS:java類文件
CLL:CrickSoftwareClicker文件
CLP:Windows剪貼板文件
CLS:VisualBasic類文件
CMD:WindowsNT,OS/2的命令文件;DOSCD/M命令文件;dBASEⅡ程序文件
CMF:Corel元文件
CMG:Chessmaster保存的游戲文件
CMP:JPEG點陣圖文件;地址文檔
CMV:CorelMove動畫文件
CMX:CorelPresentationExchange圖像
CNF:Telnet,Windows和其他其內格式會發生改變的應用程序使用的配置文件
CNM:Windows應用程序菜單選項和安裝文件
CNQ:CompuworksDesignShop文件
CNT:Windows(或其他)系統用於幫助索引或其他目的內容文件
COB:TrueSpace2對象文件
COD:MicrosoftC編譯器產生的可顯示機器碼/匯編代碼文件,其中附有源C代碼作為注釋
COM:命令文件(程序)
CPD:CorelPrintOffice文件(圖形)
CPD,CPE傳真覆蓋文檔
CPI:MicrosoftMS-DOS代碼頁信息文件
CPL:控制面板擴展名,Corel顏色板
CPO:Corel列印存儲文件
CPP:C++代碼文件
CPR:Corel提供說明書文件
CPT:Corel照片-繪畫圖像
CPX:CorelPresentationExchange壓縮圖形文件
CRD:WindowsCardfile文件
CRP:Corel提供的運行時介紹文件;VisualdBASE自定義報表文件
CRT:認證文件
CSC:Corel腳本文件
CSP:PCEmceeOn_Screen圖像
CSS:瀑布式表格文件
CST:MacromediaDirectorCast文件
CSV:逗號分隔的值文件
CT:ScitexCT點陣圖文件;PaintShopProGrapic編輯器文件
CTL:通常用於表示一個包含控制項信息的文件;FaxWork用它來保持有關每個傳真收到或發出的信息
CUE:Microsoft提示牌數據文件
CUR:Windows游標文件
CUT:DrHalo點陣圖文件
CV:Corel版本的檔案文件;MicrosoftCodeView信息屏幕文件
CWK:ClarisWorks數據文件.
CWS:ClarisWorks模塊
CXT:MacromediaDirector受保護的(不可編輯的)投影文件
CXX:C++源代碼文件
D
DAT:數據文件;WrodPerfect合並數據文件;用於一些MPEG格式的文件
DB:Borland的Paradox7表
DBC:MicrosoftVisualFoxPro資料庫容器文件
DBF:dBASE文件,一種由Ashton-Tate創建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和類似資料庫或與資料庫有關產品識別;可用數據文件(能被Excel97打開);Oracle8.1.x表格空間文件
DBX:DataBearn圖像;MicrosoftVisualFoxPro表格文件
DCM:DCM模塊格式文件
DCR:沖擊波文件
DCS:桌面顏色分隔文件
DCT:MicrosoftVisualFoxPro資料庫容器
DCU:Delphi編譯單元文件
DCX:MicrosoftVisualFoxPro資料庫容器;基於PCX的傳真圖像;宏
DC5:DataCAD繪圖文件
DDF:Btrieve或Xtrieve數據定義文件,它包含用於描述Btrieve或Xtrieve文件的元數據
DDIF:DigitalEquipment或Compaq格式,用於保存他們圖像與字處理文檔
DEF:SmartWareⅡ數據文件;C++模塊定義文件
DEFI:Oracle7卸載腳本文件
DEM:用於表示數字高度模型的USGS基準的文件
DER:認證文件
DEWF:MacintoshSoundCap/SoundEdit錄音設備格式
DGN:Macintosh95CAD繪圖文件
DIB:設備無關點陣圖
DIC:目錄
DIF:可進行數據互換的電子表格
DIG:DigiLink格式;SoundDesignerⅠ音頻文件
DIR:MacromediaDirector文件
DIZ:描述文件
DLG:C++對話框腳本文件
DLL:動態鏈接庫
DLS:可下載聲音文件
DMD:VisualdBASE數據模塊文件
DMF:X-Trakker音樂模塊(MOD)文件
DOC:FrameMaker或FrameBuilder文檔;WordStar文檔、WordPerfect文檔、MicrosoftWord文檔;DisplayWrite文檔
DOT:MicrosoftWord文檔模板
DPL:BorlandDelph3壓縮庫
DPR:BorlandDelphi工程頭文件
DRAW:Acorn的基於對象的矢量圖像文件
DRV:驅動程序
DRW:MicrografxDesigner/Draw;Pro/E繪畫文件
DSF:MicrografxDesignerVFX文件
DSG:DOOM保存的文件
DSM:DynamicStudio音樂模塊(MOD)文件
DSP:MicrosoftDeveloperStudio工程文件
DSQ:CorelQUERY(查詢)文件
DST:刺綉機圖形文件
DSW:MicrosoftDeveloperStudio工作區文件
DTA:WordBank(世界銀行)的STARS數據文件
DTD:SGML文檔類型定義(DTD)文件
DTED:地面高度數字數據(圖形的數據格式)文件
DTF:SymantecQ&A相關的資料庫數據文件
DTM:DigiTrakker模塊文件
DUN:Microsoft拔號網路導出文件
DV:數字視頻文件(MIME)
DWD:DiamondWare數字化文件
DWG:AutoCAD工程圖文件;AutoCAD或GenericCADD老版本的繪圖格式
DXF:可進行互交換的繪圖文件格式,二進制的DWG格式的文本表示;數據交換文件
DXR:MacromediaDirector受保護(不可編輯)電影文件
D64:Commodore的64位模擬磁碟圖像文件
E
EDA:EnsoniqASR磁碟映像
EDD:元素定義文檔(FrameMaker+SGML文檔)
EDE:EnsoniqEPS磁碟映像
EDK:EnsoniqKT磁碟映像
EDQ:EnsoniqSQ1/SQ2/Ks32磁碟映像
EDS:EnsoniqSQ80磁碟映像
EDV:EnsoniqVFX-SD磁碟映像
EFA:EnsoniqASR文件
EFE:EnsoniqEPS文件
EFK:EnsoniqKT文件
EFQ:EnsoniqSQ1/SQ2/Ks32文件
EFS:EnsoniqSQ80文件
EFV:EnsoniqVFX-SD文件
EMD:ABT擴展模塊
EMF:Windows增強元文件
EML:MicrosoftOutlookExpress郵件消息(MIMERTC822)文件
ENC:重演文件
ENFF:中性文件格式擴展名
EPHTML:Perl解釋增強HTML文件
EPS:壓縮的PostScript圖像
EPSF:壓縮的PostScript文件
ERI:ERWin文件
ERR:當RobooHELP幫助編譯器企圖編譯一個幫助系統源文件時用來存儲錯誤消息的文件
EPX:ERWin文件
ESPS:ESPS音頻文件
EUI:EnsoniqESP家族的壓縮磁碟映像
EVY:特使文檔
EWL:MicrosoftEncarta文檔
EXC:MicrosoftWord禁止字字典
EXE:可執行文件(程序)
F
F:FORTRAN文件
F2R:Farandoyle線性模塊格式
F3R:Farandoyle分塊線性模塊格式
F77:FORTRAN文件
F90:FORTRAN文件
FAR:FradoleComposer音樂模塊(MOD)文件
FAV:MicrosoftOutlook導航條
FAX:傳真類型圖像
FBK:Navison金融備份
FCD:虛擬CD-ROM
FDB:Navison金融資料庫
FDF:AdobeAcrobat表單文檔文件
FEM:CADRE有限元素網路文件
FFA,FFL,FFO,FFK:Microsoft快速查找文件
FFF:GUSPnP銀行文件格式
FFT:最終格式文本(IBM的DCA一部分)
FH3:AlsFreehand3繪圖文件
FIF:Fractal圖像文件
FIG:REND386/AVRIL使用的文件格式
FITS:CCD照相機圖像;靈活圖像傳輸系統
FLA:MacromediaFlash電影
FLC:AutodeskFLIC動畫文件
FLF:CorelParadox產生的格式:NavisonFinancials許可文件;OS/2驅動程序文件
FLI:AutodeskFLIC動畫
FLT:StarTrekker音樂模塊(MOD)文件;MultiGenInc的OpenFlight使用的文件格式;Corel過濾器文件
FM:AdobeFrameMaker文檔
FMB:Oracle4.0版或以後版本表單的二進制源代碼文件
FML:文件鏡象列表(GetRight)
FMT:Oracle4.0版或以後版本表單的文本格式;MicrosoftSchele+列印文件
FMX:Oracle4.0版或以後版本可執行表單
FND:MicrosoftExplorer保存的搜索文件(Findapplet)
FNG:字體組文件(字體導航器,FontNavigator)
FNK:FunkTracker模塊格式
FOG:Fontographer模塊字體
FON:系統字體
FOR:FORTRAN文件
FOT:字體相關文件
FP:FileMakerPro文件
FP1:FlyingPigsforWindows數據文件
FP3:FileMakerPro文件
FPT:FileMakerPro文件;MicrosoftFoxPro備注字體文件
FPX:FlashPix點陣圖
FRM:表單;FrameMaker或FrameBuilder文檔;Oracle可執行表(3.0版或早期版本);VisualBasic表單;WordPerfectMerge表單;DataCAD標志報表文件
FRT:MicrosoftFoxPro報表文件
FRX:VisualBasic表單文本;MicrosoftFoxPro報表文件
FSF:fPrintAuditTool文件格式
FSL:Borland的Paradox7表單;CorelParadox保存的表單
FSM:Parandoyle示例格式
FT:LotusNotes全文本索引
FTG:全文本搜索組文件,由Windows幫助系統查找時產生——可以刪除,並在需要時重建起來
FTS:全文本搜索引文件,由Windows幫助系統查找時產生
FW2:FrameworkⅡ文件
FW3:FrameworkⅢ文件
FW4:FrameworkⅣ文件
FXP:經MicrosoftFoxPro編譯的源文件
FZB:CasioFZ-1銀行轉儲
FZF:CasioFZ-1完全轉儲
FZV:CasioFZ-1聲音轉儲
G
G721:RawCCITTG.721
G723:RawCCITTG.7233或5bitADPCM格式數據
GAL:Corel多媒體管理器相集
GCD:GenericCADD繪畫文件(後續版本)
GCP:GroundControlPoint(地面控制點)文件,用於遠景數據形成圖像過程,經常用於生成圖工程—CHIPS()使用這些文件
GDB:InterBase資料庫文件
GDM:鈴聲、口哨聲和聲音板模塊格式
GED:GEDCOM系譜數據文件,用於記錄和交換系譜數據的流行格式;圖形環境文檔繪畫
GEM:GEM元文件
GEN:Ventura產生的文本文件
GetRight:GetRight未完成的下載文件
GFC:Patton&PattonFlowCharting4flowchart文件
GFI,GFX:Genigraphics圖形鏈接表示文件
GHO:Norton克隆磁碟映像
GID:Windows95全局索引文件(包括幫助狀態)
GIF:CompuServe點陣圖文件
GIM,GIX:Genigraphics圖形鏈接介紹文件
GKH:EnsoniqEPS家簇磁碟映像文件
GKS:GravisGripKey文檔
GL:動畫格式
GNA:Genigraphics圖形鏈接介紹文件
GNT:生成代碼,MicroFocus屬性格式里的可執行代碼
GNX:Genigraphics圖形鏈接介紹文件
GRA:MicrosoftGraph文件
GRD:用於遠程視景數據產生地圖過程的格式文件,通常應用於形成地圖工程—CHIPS()使用這些文件
GRF:Grapher(GoldenSoftware公司)圖形文件
GRP:程序管理組
GSM:RawGSM6.10音頻流;Raw「bytealigned(比特對齊的)」GSM6.10音頻流;USRobotics語音數據機
GTK:Graoumftracker(老)音樂模塊(MOD)文件
GT2:Graoumftracker(新)音樂模塊(MOD)文件
GWX,GWZ:Cenigraphis圖形鏈接介紹文件
GZ:UNIXgzip壓縮文件
H
H:C程序頭文件
HCM:IBMHCM配置文件
HCOM:聲音工具HCOM格式
HCR:IBMHCD/HCM產品配置文件
HDF:高級計算機應用程序本地中心(NCSA)geospatialHierarchial數據格式文件
HED:HighEdit文檔
HEL:MicrosoftHellbender格式保存的游戲文件
HEX:MacintoshBinHex2.0文件
HGL:HP圖形語言繪圖文件
HH:映射文件,包括一些話題ID和在幫助文件系統中話題的映射數字—允許運行中應用程序發送給用戶合適的上下文幫助話題
HLP:幫助文件;DateCADWindows幫助文件
HOG:LucasArts的DarkForcesWAD文件
HPJ:VisualBasic幫助工程
HPP:C++程序頭文件
HQX:MacintoshBinHex4.0文件
HST:歷史文件
HT:HyperTerminal(超級終端)
HTM,HTML:超文本文檔
HTT:Microsoft超文本模板
HTX:擴展HTML模板
HXM:Descent2HAM文件擴展
I
ICA:Citrix文件
ICB:Targa點陣圖文件
ICC:Kodak列印機格式文件
ICL:圖標庫文件
ICM:圖形顏色匹配配置文件
ICO:Windows圖標
IDB:MSDev中間層文件
IDD:MIDI設備定義
IDF:MIDI設備定義(Windows95需要的文件)
IDQ:Internet數據查詢文件
IDX:MicrosoftFoxPro相關資料庫索引文件;SymantecQ&A相關資料庫索引文件;MicrosoftOutlookExpress文件
IFF:交換格式文件;AmigaILBM
IGES:初始圖形交換說明文件
IGF:插入系統元文件
IIF:QuickBooksforWindows交換文件
ILBM:點陣圖圖形文件
IMA:WinImage磁碟映像文件
IMG:GEM映像
IMZ:WinImage壓縮磁碟映像文件
INC:匯編語言或動態伺服器包含文件
INF:信息文件
INI:初始化文件;MWaveDSPSynth的「nwsynth.ini」GMS安裝;CravisUltrasoundbank安裝
INP:Oracle3.0版或早期版本的表單源代碼
INRS:INRS遠程通信聲頻
INS:InstallShield安裝腳本;X-Internet簽字文件;EnsoniqEPS字簇設備;Cell/ⅡMAC/PC抽樣設備
INT:中間代碼,當一個源程序經過語法檢查後編譯產生一個可執行代碼
IOF:Findit文檔
IQY:MicrosoftInternet查詢文件
ISO:根據ISD9660有關CD-ROM文件系統標准列出CD-ROM上的文件
ISP:X-Internet簽字文件
IST:數字跟蹤設備文件
ISU:InstallShield卸裝腳本
IT:脈沖跟蹤系統音樂模塊(MOD)文件
ITI:脈沖跟蹤系統設備
ITS:脈沖跟蹤系統抽樣,Internet文檔位置
IV:OpenInventor中使用的文件格式
IVD:超過20/20微觀數據維數或變數等級文件
IVP:超過20/20的用戶子集配置文件
IVT:超過20/20表或集合數據文件
IVX:超過20/20微數據目錄文件
IW:Idlewild屏幕保護程序
IWC:InstallWatch文檔
J
J62:Ricoh照相機格式
JAR:Java檔案文件(一種用於applet和相關文件的壓縮文件)
JAVA:Java源文件
JBF:PaintShopPro圖像瀏覽文件
JFF,JFIF,JIF:JPEG文件
JMP:SAS的JMPDiscovery表格統計文件
JN1:EpicMegaGames的JilloftheJungle數據文件
JPE,JPEG,JPG:JPEG圖形文件
js:javascript源文件
JSP:HTML網頁,其中包含有對一個Javaservlet的參考
JTF:JPEG點陣圖文件
K
K25:Kurzweil2500抽樣文件
KAR:卡拉OKMIDI文件(文本+MIDI)
KDC:Kodak光增強器
KEY:DataCAD圖標工具條文件
KFX:KoFakGroup4圖像文件
KIZ:Kodak數字明信片文件
KKW:RoboHELP幫助工程索引設計器中與主題無關的K開頭的所有關鍵字
KMP:KorgTrinityKeyMap文件
KQP:Konica照相機本地文件
KR1:Kurzweil2000抽樣(多軟碟機)文件
KRZ:Kurzweil2000抽樣文件
KSF:KorgTrinity抽樣文件
KYE:Kye游戲數據
L
LAB:VisualdBASE標簽文件
LBM:DeluxePaint點陣圖文件
LBT,LBX:MicrosoftFoxPro標簽文件
LDB:MicrosoftAccess加鎖文件
LDL:CorelParadox分發庫
LEG:Legacy文檔
LES:Logitech娛樂系統游戲配置文件(與REC文件一樣)
LFT:3DStudio(DOS)放樣文件
LGO:Paintbrush(Microsoft畫圖應用程序)的徽標文件
LHA:LZH更換文件後綴
LIB:庫文件
LIN:DataCAD線型文件
LIS:結構化查詢報告(SQR)程序產生的輸出文件
LLX:Laplink交換代理
LNK:Windows快捷方式文件
LOG:日誌文件
LPD:HelixNut和Bolt文件
LRC:Intel可視電話文件
LSL:CorelParadox保存的庫文件
LSP:AutoLISP、CommonLISP和其他LISP語言文件
LST:列表文件
LU:ThoughtWing庫單元文件
LVL:ParallaxSoftware的MinerDescent/D2Level擴展
LWLO:Lightwave分層對象文件
LWOB:Lightwave對象文件
LWP:LotusWordPro96/97文件
LWSC:Lightwave視景文件
LYR:DataCAD層文件
LZH:LHARC壓縮檔案
LZS:Skyroads數據文件
M
M1V:MPEG相關文件(MIME「mpeg」類型)
M3D:CorelMotion3D動畫文件
M3U:MPEGURL(MIME聲音文件)
MAC:MacPaint圖像文件
MAD:MicrosoftAccess模塊文件
MAF:MicrosoftAccess表單文件
MAG:在一些日本文件中發現的圖形文件格式
MAGIC:魔力郵件監視器配置文件
MAK:VisualBasil或MicrosoftVisualC++工程文件
MAM:MicrosoftAccess宏
MAN:UNIX手冊頁輸出
MAP:映射文件;DukeNukem3DWAD游戲文件
MAQ:MicrosoftAccess查詢文件
MAR:MicrosoftAccess報表文件
MAS:文件
MAT:MicrosoftAccess表;3DStudioMAX材料庫
MAUD:MAUD抽樣格式
MAX:Kinetx的3DStudioMAX文件;該格式用於一個3D場景文件;Paperport文件;OrCAD設計文件
MAZ:Hover迷路數據;Division的dVS/dVISE使用的文件格式
MB1:ApogeeMonsterBash數據文件
MBOX:BerkeleyUnix郵箱格式
MBX:MicrosoftOutlook保存email格式;Eudora郵箱
MCC:Dailerl0呼叫卡
MCP:MetrowerksCodeWarrior工程文件
MCR:DataCAD鍵盤宏文件
MCW:MicrosoftWord的Macintosh文檔
MDA:MicrosoftAccess內抽入器;MicrosoftAccess2.0版及其後續版本的工作組事件
MDB:MicrosoftAccess資料庫
MDE:MicrosoftAccessMDE文件
MDL:數字跟蹤器音樂模塊(MOD)文件;Quake模塊文件
MDN:MicrosoftAccess空資料庫模板
MDW:MicrosoftAccess工作組文件
MDZ:MicrosoftAccess向導模板文件
MED:音樂編輯器,OctaMED音樂模塊(MOD)文件
MER:電子表格/資料庫數據交換格式;FileMaker、Excel及其他軟體能識別
MET:表示管理器元文件
MFG:Pro/ENGINEER製造文件
MGF:在材料與
❹ 最先進的3D引擎構架
你好!~
一個難以實現的想法
MYSQL初學者使用指南與介紹
第一次使用多線程,領教到它的威力和脾氣
第一次使用多線程,領教到它的威力和脾氣
DirectX 9高層著色語言介紹
ZLib2000 3D加速渲染2D游戲
ZLib2000 融和+邊緣模糊
Keyboard shortcuts
ZLib2000 即時光影
ZLib2000 即時光影
基於IE瀏覽器的圖形聊天室(類可樂8)
ZLib2000 3D引擎
電視互動點播系統
Zephyr 3
關於大型網站的構架問題
冒泡排序的演算法分析與改進
冒泡排序的演算法分析與改進
在不同計算機上配置 BizTalk Server(運行時)和 BAS
兩個有用的oracle資料庫運算:intersect和minus運算
一個基於exosip的軟電話例子
自繪菜單的實現
動態分組查詢
ASP.NET 安全性
Squid做反向加速,配合DNS輪詢實現簡單負載均衡典型配置
Squid做反向加速,配合DNS輪詢實現簡單負載均衡典型配置
[dotNET]COM組件轉換成.NET組件{ZT}
C++文件I/O示例
登陸
OSI網路結構的七層模型-網路大典
使用C#編程將websphere MQ 5.3 windows客戶端消息發送到linux伺服器端
Delphi 與 Word_VBA
設置Windows系統NTFS某個目錄的用戶訪問許可權(c#)
保存數據到 olevariant
delphi 常用函數
delphi 常用函數
精妙SQL語句介紹
文件與目錄
口腹之慾的文化情懷(ZT)
口腹之慾的文化情懷(ZT)
linux partition table on PC
網路函數庫
網路函數庫
文件與Olevariant
TCP/IP協議-網路大典
TCP/IP協議-網路大典
關於時間函數
直接訪問WebBrowser控制項中的HTML源碼
直接訪問WebBrowser控制項中的HTML源碼
MVC架構模式
JNI字元集的轉換
用C#開發opengl
SIP基本應用
vector方法
ADO.NET讀書筆記系列之------ADO.NET概述
Delphi 與 Excel (二)
TStrings的AddObject方法應用
TStrings的AddObject方法應用
fileStream
數據補丁
面向實時物流作業的板坯庫管理系統
數據壓縮 -- 源碼
HTML中的數據綁定(Data Binding)
.NET中的xpath
數據壓縮 -- 應用
獨立開發並公開源代碼的項目
雙精度浮點數的加法計算誤差及其避免的初步方法
雙精度浮點數的加法計算誤差及其避免的初步方法
提高FastReplace速度 (fStrRep.pas)
C#的四個基本技巧
Tapestry + Spring + Hibernate 整合工作及相關問題
掌通無線簡訊平台演示版客戶常見問題匯總
廣角霸王!尼康800萬像CP8400震撼上市
廣角霸王!尼康800萬像CP8400震撼上市
26個日文片假名導致Access搜索(80040e14/內存溢出)的解決辦法
PHP寫的挖金子游戲
如何創建原生的窗口程序
eclipse +cvs 的基本使用方法
如何創建原生的窗口程序
java 資料庫基本操作
OSI網路結構的七層模型--網路大典
武鋼2250mm熱軋廠生產物流管理系統的研究與開發
數據結構學習筆記(C語言描述)
引導協議--網路大典
工作流基於Jboss與Mysql的環境配置
模擬視頻手機的設計思想
Jdom使用指南
Jdom使用指南
61條面向對象設計的經驗原則-《OOD啟示錄》Arthur J.Riel
創業中的一點點心情,與大家分享!希望大家多多支持!
knoppix
validate框架構建順序
Word編程中,事件的作用和順序
finding hidden moles on 2.6 kernel_mole_hunter
finding hidden moles on 2.6 kernel_mole_hunter
asp.net中合並DataGrid行
網站標題設計與搜索引擎
Samba
Introcing to Spring Framework
Tomcat下Session的使用與管理
Introcing to Spring Framework
在MSSQL版參與問題有所感觸
.NET Remoting 安全性
.NET Remoting 安全性
寫給新入行的測試組同事
Web 服務安全性
數據訪問安全性
數據訪問安全性
學習oracle sql loader 的使用
使用 VS.Net 自帶打包工具對 Asp.Net Web 應用程序進行打包
XML Name Space----XML 命名空間
XML Name Space----XML 命名空間
安裝Oracle9i失敗,一定要重灌系統嗎?(個人安裝後的體會,與大家分享)
Windows下JAVA環境變數的設置祥解
C Error Explanation
Windows下JAVA環境變數的設置祥解
GCC User Guide
製作如IE的標題欄和工具欄(翻譯)
製作如IE的標題欄和工具欄(翻譯)
製作如IE的標題欄和工具欄(翻譯)
JDK5新特性之二----新的格式化輸出
「非計算機相關專業」的定義
Samba
浙江大學鄭強教授的演講(轉載)
Sendmail
[SQl Server學習] step by step 前言!
linux常用的命令詳細說明
安全之道:加密與數字簽名
在DataGrid快速添加新行(c#)
用VB做課程設計我有很多問題
如何用JSP處理Oracle中CLOB類型的欄位
關於"編譯器失敗,錯誤代碼為 128。"的解決方案
之控製表格的字數的處理方法.
關於"編譯器失敗,錯誤代碼為 128。"的解決方案
在 Asp.Net Web 應用程序中長時間裝載頁面時顯示進度條
使用回車代替Tab鍵的功能代碼
SAS9應用- 轉化IntrNet架構的應用到IT架構的應用
session 禁止未登錄越權瀏覽信息
尋找成功人生的方向
html&js經典技巧
JbuilderX的游標問題
IMP-00020錯誤的解決方法
java程序破解天意商務系統後台帳號
設計模式之Builder——購機篇
設計模式之Builder——購機篇
[轉]項目管理感觸
設計模式之Visitor——送禮篇
[轉]項目存檔管理規范
Struts+Hibernate+Spring 框架圖我的翻譯
Spring+Hibernate+Struts技術的一個分頁程序,共享給大家
Spring+Hibernate+Struts技術的一個分頁程序,共享給大家
計算機程序設計藝術(第I卷)
如何把String型的20%存到資料庫里變成float型,也是20%
java中找到資源文件的路徑
通過數據表動態建Treeview,絕對高效率!
關於XMLBeans/shcema,不得不說的話題
走入匯編的世界
在ASP.NET中點擊一個按鈕後讓它變灰的簡單方法
Mophun & J2ME 的游戲開發之旅(三)
用JS驗證asp.net服務端控制項
一個軟體測試工程師的加班經歷
用Visual Basic 6.0實現自動化測試
克隆一例
如何從現有程序升級到支持多國語言的程序!
OrientX 簡述
OrientX 簡述
FreeBSD 4.10 漢化總結
認識桌面主題及其管理工具
iterator 的使用
Java 2源碼解讀:java.util.ArrayList
Java 2源碼解讀:java.util.ArrayList
桌面主題之桌面圖標
桌面主題之系統顏色
18個經典培訓故事(3)
18個經典培訓故事(3)
成為富有實現思想的系統開發者的幾點建議
DirectX 9高層著色語言介紹2——語言基礎(1)
究竟應該使用什麼樣的界面?
Delphi 消息機制引入的一個副作用
powerbuilder10試用手記
浙大在線評測 1109 Language of FatMouse
浙大在線評測 1150 S-Trees
浙大在線評測 1150 S-Trees
封裝WinCpp
浙大在線評測 1151 Word Reversal
AOL欲推瀏覽器,決定用IE內核!
浙大在線評測 1159 487-3279
[轉帖]IE經典故障寫真
殺毒軟體||俄羅斯卡巴斯基 最新官方英文伺服器版 for Windows File Servers下
GMail Drive
抓屏軟體||HyperSnap-DX 5.61.00 漢化版下載
由C#風潮想起的-給初學編程者的忠告( 作者: 劉巍 )
HTML 特殊代碼
HTML 特殊代碼
今日工作計劃
猜想Builder模式的由來
猜想Builder模式的由來
struts開發實踐—總論
struts開發實踐—總論
struts開發實踐—入門學習
struts開發實踐—讀寫xml實例
l10n
l10n
struts開發實踐—簡單樹的實現
struts開發實踐—柱形圖實例
struts開發實踐—如何調用Excel
struts開發實踐—柱形圖實例
設計模式之Decorator——家裝篇(原創)
Readers Choice Awards 2004
名字空間在XML中的應用(原創)
最近小弟在做portal項目,希望在apache開源項目上做,有同道的朋友請聯系。msn:shido
名字空間在XML中的應用(原創)
調試SharePoint web part時, 如何可以多個人同時啟動調試?
List添加Item時, 如何去判斷某個欄位, 並且保證欄位數據不重復性
List添加Item時, 如何去判斷某個欄位, 並且保證欄位數據不重復性
ORACLE常見錯誤代碼的分析與解決(一)
關於提高基於OpenSSL軟體的運行效率的研究
ORACLE常見錯誤代碼的分析與解決(三)
關於提高基於OpenSSL軟體的運行效率的研究
發布一個List記錄查找Web Part: PowerSearch v1.0
typedef
將使用Access的論壇遷移到SqLServer中
使用自己的命名空間規范Webpart名稱
ANT安裝、配置
利用Java 創建和讀取Excel文檔
FLASHMX2004默認支持語法提示的AS後綴!
使用SPFolderCollection以及SPFolder對象分層次顯示文檔列表
文件過濾驅動的開發(上)
Useful SAP System Administration Transactions
精彩共賞:放出《IT大敗局》電台訪談錄音
電子商務的理想設計模式-CMP
Swt學習筆記(1)——配置環境
電子商務的理想設計模式-CMP
SWT學習筆記(2)——轉載倪大鵬的「SWT:AWT和SWING的強大競爭者」
Eclipse 資源
程序員十大安全技巧(轉貼)
SWT學習筆記(2)——轉載倪大鵬的「SWT:AWT和SWING的強大競爭者」
Quake源代碼分析(草稿).3
通過session傳遞值(原創)
Eclipse的可視化插件VE
我看軟體開發中的誤區--思考一
Struts下JSP頁面傳遞復選框值技巧(原創)
態度決定一切——讀《Writing clean code》有感
態度決定一切——讀《Writing clean code》有感
幾種上傳方法介紹和比較(原創)
SWT學習筆記(3)——第一個程序
存儲過程中建立一個表時出錯,為什麼?
密碼學領域重大發現:成功破解MD5
JDK 1.5 特性使用實例1--Generics
字元集問題的初步探討(六)-----亂碼的產生
JDK 1.5 特性使用實例2--Varargs
Java游戲編程初步
JDK 1.5 特性使用實例3--AutoBoxing
我和我的台灣程序員同事們[5]
我和我的台灣程序員同事們[5]
What is Favicon.ico? Personalise Your Site's Bookm
經典解釋――――中國男足為什麼總是輸? ZT
JDK 1.5 特性使用實例4--Enum
JDK 1.5 特性使用實例5--metadata
縮小SQL SERVER日誌文件
JDK 1.5 特性使用實例5--metadata
JDK 1.5 特性使用實例6--staticimport
JDK 1.5 特性使用實例7--運行外部程序
如何使IFrame的長寬與內容自動適應大小
ARX中如何insert一個圖(zt)
在XSL里應用javascript/C# Script等
在XSL里應用javascript/C# Script等
如何在unix下讀寫informix的數據(zxs3543)
使用VBA訪問塊和塊引用數據
如果對字元型編號欄位(如1-2)進行排序
修改servlet而不需要重新啟動伺服器(轉載自CSDN之 wjmmml (笑著悲傷))
修改servlet而不需要重新啟動伺服器(轉載自CSDN之 wjmmml (笑著悲傷))
Shark的概念模型及實現模型(部分)
讓程序員汗顏的一貼
讓程序員汗顏的一貼
收藏文章
我的webwork2的cookie攔截器
數據倉庫與企業應用集成(二)
用javascript實現的日期時間輸入控制項
過去兩年中我對代碼重用的體驗
簽名與蓋章之新課題-論電子簽章之法律效力(轉載)
NewEdit編輯器的MusicPlayV0.2插件Release!
磁碟配額的wmi版本(C#)
學習Shark的一些理解
STORED PROCEDURES: GOOD OR BAD(存儲過程:好還是壞)
查找某目錄下的所有文件
查找某目錄下的所有文件
全球最小·靈氣智慧 多普達565超詳盡(pconline.com)
ACCESS:跨資料庫查詢的SQL語句
男人25歲前的忠告
CNNRadio-一邊工作一邊聽CNN新聞
限制訪問頁面(原創)
軟體和硬體
Linux必學60個命令文件處理
關於在eclipse中使用lomboz調試jsp的心得
用一條SQL完成數據表的行統計
HMAC-MD5的C#實現
用createPopup()方法來模似透明網頁窗體
用createPopup()方法來模似透明網頁窗體
VB.NET啟動外部程序
❺ 用Delphi實現在word文檔中快速查找關鍵字的源代碼
用OLE來實現吧!
wordapp := CreateOleObject('Word.Application');
wordapp.Application.Visible := true;
worddoc := wordapp.Documents.open(FileName := path + 'word.doc', ReadOnly := False, AddToRecentFiles := False);
然後用WORD錄下查找的VBA代碼就可以了!
❻ delphi中退出是彈出讓你確定的幾種確定對話框怎麼寫
1、打開Delphi7集成開發環境,在默認工程的Form1窗體放一個Button1按鈕,一個Edit1編輯框。
❼ delphi 如何寫入Excel
在開發資料庫應用程序中,經常要將類型相同的數據導出來,放到Excel文件中,利用Excel強大的編輯功能,對數據作進一步的加工處理。這有許多的方法,我們可以使用OLE技術,在Delphi中創建一個自動化對象,通過該對象來傳送數據。也可以使用ADO,通過與Excel數據存儲建立連接,使用ADO這種獨立於資料庫後端的技術來導出數據集的數據。
可這兩種技術都有一個共同的缺點,那就是慢,數據量少還好,用戶不會有太多的感覺,可一旦數據量大,比如,超過1千條,速度就讓人難以忍受了,那麼有沒有更好的辦法,既可以快速地導出數據,又不用安裝附加的軟體。也許好多人都想到了剪貼板的方式,這種方式速度是快,可也有不好的一面,那就是數據量大佔用內存也大,並且在Excel中調用PASTE方法時,需要鎖定輸入,這使用起來,就有點不方便了
這里我為大家介始一種比較好的方法,使用文件流的方式,通過TfileStream直接寫入Excel文件。我寫了一個函數,通過它可將數據集中的數據直接導入到Excel文件中。測試了一下,1M的數據,不到十秒就完成了。附源程序。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DB, ADODB, Grids, DBGrids, StdCtrls;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
ADOTable1: TADOTable;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOTable1record_id: TIntegerField;
ADOTable1action_id: TIntegerField;
ADOTable1action_name: TStringField;
ADOTable1net_name: TStringField;
ADOTable1deal_no: TStringField;
ADOTable1name: TStringField;
ADOTable1getno_date: TDateTimeField;
ADOTable1window_no: TIntegerField;
ADOTable1staff_id: TStringField;
ADOTable1staff_name: TStringField;
ADOTable1deal_date: TDateTimeField;
ADOTable1deal_type: TStringField;
ADOTable1finish_date: TDateTimeField;
ADOTable1state: TStringField;
ADOTable1appraise: TStringField;
ADOTable1appraised_flag: TBooleanField;
ADOTable1cancel_led_time: TDateTimeField;
ADOTable1wait_time: TBCDField;
ADOTable1wait_time2: TStringField;
ADOTable1accept_time: TBCDField;
ADOTable1accept_time2: TStringField;
ADOTable1getnumber_addr: TIntegerField;
ADOTable1cust_level: TIntegerField;
ADOTable1cust_level_name: TStringField;
ADOTable1cust_level_name_remark: TStringField;
ADOTable1operation_sum: TIntegerField;
Button1: TButton;
SaveDialog1: TSaveDialog;
procere Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
arXlsBegin: array[0..5] of Word = ($809, 8, 0, $10, 0, 0);
arXlsEnd: array[0..1] of Word = ($0A, 00);
arXlsString: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
arXlsNumber: array[0..4] of Word = ($203, 14, 0, 0, 0);
arXlsInteger: array[0..4] of Word = ($27E, 10, 0, 0, 0);
arXlsBlank: array[0..4] of Word = ($201, 6, 0, 0, $17);
implementation
{$R *.dfm}
Procere ExportExcelFile(FileName: string; bWriteTitle: Boolean; aDataSet: TDataSet);
var
i, j: integer;
Col, row: word;
ABookMark: TBookMark;
aFileStream: TFileStream;
procere incColRow; //增加行列號
begin
if Col = ADataSet.FieldCount - 1 then
begin
Inc(Row);
Col :=0;
end
else
Inc(Col);
end;
procere WriteStringCell(AValue: string);//寫字元串數據
var
L: Word;
begin
L := Length(AValue);
arXlsString[1] := 8 + L;
arXlsString[2] := Row;
arXlsString[3] := Col;
arXlsString[5] := L;
aFileStream.WriteBuffer(arXlsString, SizeOf(arXlsString));
aFileStream.WriteBuffer(Pointer(AValue)^, L);
IncColRow;
end;
procere WriteIntegerCell(AValue: integer);//寫整數
var
V: Integer;
begin
arXlsInteger[2] := Row;
arXlsInteger[3] := Col;
aFileStream.WriteBuffer(arXlsInteger, SizeOf(arXlsInteger));
V := (AValue shl 2) or 2;
aFileStream.WriteBuffer(V, 4);
IncColRow;
end;
procere WriteFloatCell(AValue: double);//寫浮點數
begin
arXlsNumber[2] := Row;
arXlsNumber[3] := Col;
aFileStream.WriteBuffer(arXlsNumber, SizeOf(arXlsNumber));
aFileStream.WriteBuffer(AValue, 8);
IncColRow;
end;
begin
if FileExists(FileName) then
DeleteFile(FileName); //文件存在,先刪除
aFileStream := TFileStream.Create(FileName, fmCreate);
Try
//寫文件頭
aFileStream.WriteBuffer(arXlsBegin, SizeOf(arXlsBegin));
//寫列頭
Col := 0; Row := 0;
if bWriteTitle then
begin
for i := 0 to aDataSet.FieldCount - 1 do
WriteStringCell(aDataSet.Fields[i].FieldName);
end;
//寫數據集中的數據
aDataSet.DisableControls;
ABookMark := aDataSet.GetBookmark;
aDataSet.First;
while not aDataSet.Eof do
begin
for i := 0 to aDataSet.FieldCount - 1 do
case ADataSet.Fields[i].DataType of
ftSmallint, ftInteger, ftWord, ftAutoInc, ftBytes:
WriteIntegerCell(aDataSet.Fields[i].AsInteger);
ftFloat, ftCurrency, ftBCD:
WriteFloatCell(aDataSet.Fields[i].AsFloat)
else
WriteStringCell(aDataSet.Fields[i].AsString);
end;
aDataSet.Next;
end;
//寫文件尾
AFileStream.WriteBuffer(arXlsEnd, SizeOf(arXlsEnd));
if ADataSet.BookmarkValid(ABookMark) then
aDataSet.GotoBookmark(ABookMark);
finally
AFileStream.Free;
ADataSet.EnableControls;
end;
end;
procere TForm1.Button1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
ExportExcelFile(SaveDialog1.FileName,True,DBGrid1.DataSource.DataSet);
end;
end;
end.
❽ delphi讀取文本問題
ini文件處理方式,自己看
Delphi中的INI文件編程
2007年06月23日 星期六 16:34
INI文件在系統配置及應用程序參數保存與設置方面,具有很重要的作用,
所以可視化的編程一族,如VB、VC、VFP、Delphi等都提供了讀寫INI文件
的方法,其中Delphi中操作INI文件,最為簡潔,這是因為Delphi3提供了
一個TInifile類,使我們可以非常靈活的處理INI文件。
一、有必要了解INI文件的結構:
;注釋
[小節名]
關鍵字=值
...
INI文件允許有多個小節,每個小節又允許有多個關鍵字,「=」後面是
該關鍵字的值。
值的類型有三種:字元串、整型數值和布爾值。其中字元串存貯在INI文
件中時沒有引號,布爾真值用1表示,布爾假值用0表示。
注釋以分號「;」開頭。
二、定義
1、在Interface的Uses節增加IniFiles;
2、在Var變數定義部分增加一行:
myinifile:Tinifile;
然後,就可以對變數myinifile進行創建、打開、讀取、寫入等操作了。
三、打開INI文件
myinifile:=Tinifile.create('program.ini');
上面這一行語句將會為變數myinifile與具體的文件program.ini建立聯
系,然後,就可以通過變數myinifile,來讀寫program.ini文件中的關
鍵字的值了。
值得注意的是,如果括弧中的文件名沒有指明路徑的話,那麼這個
Program.ini文件會存儲在Windows目錄中,把Program.ini文件存儲在應
用程序當前目錄中的方法是:為其指定完整的路徑及文件名。下面的兩
條語句可以完成這個功能:
Filename:=ExtractFilePath(Paramstr
(0))+'program.ini';
myinifile:=Tinifile.Create(filename);
四、讀取關鍵字的值
針對INI文件支持的字元串、整型數值、布爾值三種數據類型,
TINIfiles類提供了三種不同的對象方法來讀取INI文件中關鍵字的值。
假設已定義變數vs、vi、vb分別為string、integer、boolean類型。
vs:=myinifile.Readstring
('小節名','關鍵字',預設值);
vi:=myinifile.Readinteger
('小節名','關鍵字',預設值);
vb:=myinifile.Readbool
('小節名','關鍵字',預設值);
其中預設值為該INI文件不存在該關鍵字時返回的預設值。
五、寫入INI文件
同樣的,TInifile類也提供了三種不同的對象方法,向INI文件寫
入字元串、整型數及布爾類型的關鍵字。
myinifile.writestring('小節名','關鍵字',變數或字元串值);
myinifile.writeinteger('小節名','關鍵字',變數或整型數值);
myinifile.writebool('小節名','關鍵字',變數或True或False);
當這個INI文件不存在時,上面的語句還會自動創建該INI文件。
六、刪除關鍵字
除了可用寫入方法增加一個關鍵字,Tinifile類還提供了一個刪
除關鍵字的對象方法:
myinifile.DeleteKey('小節名','關鍵字');
七、小節操作
增加一個小節可用寫入的方法來完成,刪除一個小節可用下面的
對象方法:
myinifile.EraseSection('小節名');
另外Tinifile類還提供了三種對象方法來對小節進行操作:
myinifile.readsection('小節名',TStrings變數);可將指定小節中的
所有關鍵字名讀取至一個字元串列表變數中;
myinifile.readsections(TStrings變數);可將INI文件中所有小節名讀
取至一個字元串列表變數中去。
myinifile.readsectionvalues('小節名',TStrings變數);可將INI文件
中指定小節的所有行(包括關鍵字、=、值)讀取至一個字元串列表變
量中去。
八、釋放
在適當的位置用下面的語句釋放myinifile:
myinifile.distory;
九、一個實例
下面用一個簡單的例子(如圖),演示了建立、讀取、存貯INI文件的方
法。myini.ini文件中包含有「程序參數」小節,和用戶名稱(字元串
)、是否正式用戶(布爾值)和已運行時間(整型值)三個關鍵字。
程序在窗體建立讀取這些數據,並在窗體釋放時寫myini.ini文件。
附源程序清單
unitUnit1;
interface
uses
Windows,Messages,SysUtils,Classes,Graphics,
Controls,Forms,Dialogs,inifiles,StdCtrls,ExtCtrls;
type
TForm1=class(TForm)
Edit1:TEdit;
CheckBox1:TCheckBox;
Edit2:TEdit;
Label1:TLabel;
Label2:TLabel;
Timer1:TTimer;
Label3:TLabel;
procereFormCreate(Sender:TObject);
procereFormDestroy(Sender:TObject);
procereTimer1Timer(Sender:TObject);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
Form1:TForm1;
implementation
var
myinifile:TInifile;
{$R*.DFM}
procereTForm1.FormCreate(Sender:TObject);
var
filename:string;
begin
filename:=ExtractFilePath(paramstr(0))+'myini.ini';
myinifile:=TInifile.Create(filename);
edit1.Text:=myinifile.readstring
('程序參數','用戶名稱','預設的用戶名稱');
edit2.text:=inttostr(myinifile.readinteger
('程序參數','已運行時間',0));
checkbox1.Checked:=myinifile.readbool
('程序參數','是否正式用戶',False);
end;
procereTForm1.FormDestroy(Sender:TObject);
begin
myinifile.writestring('程序參數','用戶名稱',edit1.Text);
myinifile.writeinteger('程序參數','已運行時間',
strtoint(edit2.text));
myinifile.writebool('程序參數','是否正式用戶',
checkbox1.Checked);
myinifile.Destroy;
end;
procereTForm1.Timer1Timer(Sender:TObject);
begin
edit2.Text:=inttostr(strtoint(edit2.text)+1);
end;
end.
{unit JxcPz;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB,inifiles;
const
C1 = 42578; // 常量說明
C2 = 62541; // 此二常量用於生成隨機數
type
TJxcPzw = class(TForm)
grp1: TGroupBox;
lbl1: TLabel;
lbl2: TLabel;
edt_name: TEdit;
edt_mm: TEdit;
btn_cj: TButton;
btn_close: TButton;
adocon: TADOConnection;
lbl3: TLabel;
edt_yfmc: TEdit;
procere btn_closeClick(Sender: TObject);
procere btn_cjClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
JxcPzw: TJxcPzw;
implementation
{$R *.DFM}
function Encrypt(S:String;Key:Word):String;
var { 加密子程序 }
I,j:Integer; // 用於循環
begin
Result:=S; // 初始化結果字元串
for I:=1 to Length(S) do // 依次對字元串中的各個字元進行操作
begin
Result[I]:=char(byte(S[I]) xor (Key shr 8)); // 將密匙移位後與字元異或
Key:=(byte(Result[I])+Key)*C1+C2 // 產生下一密匙
end;
S:=Result; // 保存結果
Result:=''; // 清除結果
for I:=1 to Length(S) do // 對加密結果進行轉換
begin
j:=Integer(s[i]); // 提取字元
Result:=Result+Char(65+(j div 26))+Char(65+(j mod 26));
end;
end;
function Decrypt(S:String;Key:Word):String;
var { 解密子函數 }
I,j:Integer;
begin
Result:=''; // 清除結果
for I:=1 to (length(S) div 2) do
begin
j:=(Integer(S[2*i-1])-65)*26;
j:=j+(Integer(S[2*i])-65);
Result:=Result+Char(j);
end;
S:=Result;
for I:=1 to Length(S) do
begin
Result[I]:=Char(byte(S[I]) xor (Key shr 8));
Key:=(byte(S[I])+Key)*C1+C2;
end;
end;
procere TJxcPzw.btn_closeClick(Sender: TObject);
begin
Application.Terminate;
end;
procere TJxcPzw.btn_cjClick(Sender: TObject);
var
inijxc: tinifile;
servernamejxc, usernamejxc, passwordjxc, connjxc,yfmcjxc: string;
begin
try
if trim(edt_name.Text) = '' then
begin
Application.MessageBox('伺服器名稱不能為空!', '系統配置', MB_OK + MB_ICONWarning);
edt_name.SetFocus;
exit;
end;
if trim(edt_mm.Text) = '' then
begin
Application.MessageBox('資料庫密碼不能為空!', '系統配置', MB_OK + MB_ICONWarning);
edt_mm.SetFocus;
exit;
end;
edt_name.Enabled := false;
edt_mm.Enabled := false;
edt_yfmc.Enabled:=false;
btn_cj.Enabled := false;
inijxc := TINIFile.Create(ExtractFilePath(application.ExeName) + 'inijxc.ini');
inijxc.WriteString('server', 'name', '' + edt_name.text + '');
inijxc.WriteString('server', 'user', 'sa');
inijxc.WriteString('server', 'pass', '' + encrypt(edt_mm.text,66) + '');
inijxc.WriteString('server', 'yfmc', '' + edt_yfmc.text + '');
ADOCon.close;
servernamejxc := inijxc.ReadString('server', 'name', '');
usernamejxc := inijxc.ReadString('server', 'user', '');
passwordjxc := inijxc.ReadString('server', 'pass', '');
yfmcjxc := inijxc.ReadString('server', 'yfmc', '');
connjxc := 'Provider=SQLOLEDB.1;Password=' + decrypt(passwordjxc,66) + ';Persist Security Info=True;User ID=' + usernamejxc + ';Initial Catalog=yygl;Data Source=' + servernamejxc;
ADOCon.ConnectionString := connjxc;
ADOCon.Open;
Application.MessageBox('配置創建成功!', '創建配置', 0);
exit;
except
begin
Application.MessageBox('資料庫連接失敗,請檢測資料庫密碼及設置!', '系統服務配置', 0);
btn_cj.Enabled := true;
edt_name.Enabled := true;
edt_mm.Enabled := true;
edt_yfmc.Enabled:=True;
exit;
end;
inijxc.Free;
end;
end;
end.
❾ delphi 如何獲取edit的text中的每個漢字首字母呢
碰巧我有這么一個函數
有點長,,不過,絕對能用
const py: array[216..247] of string = (
{216}'CJWGNSPGCGNESYPB' + 'TYYZDXYKYGTDJNMJ' + 'QMBSGZSCYJSYYZPG' +
{216}'KBZGYCYWYKGKLJSW' + 'KPJQHYZWDDZLSGMR' + 'YPYWWCCKZNKYDG',
{217}'TTNJJEYKKZYTCJNM' + 'CYLQLYPYQFQRPZSL' + 'WBTGKJFYXJWZLTBN' +
{217}'CXJJJJZXDTTSQZYC' + 'DXXHGCKBPHFFSSYY' + 'BGMXLPBYLLLHLX',
{218}'SPZMYJHSOJNGHDZQ' + 'YKLGJHXGQZHXQGKE' + 'ZZWYSCSCJXYEYXAD' +
{218}'ZPMDSSMZJZQJYZCD' + 'JEWQJBDZBXGZNZCP' + 'WHKXHQKMWFBPBY',
{219}'DTJZZKQHYLYGXFPT' + 'YJYYZPSZLFCHMQSH' + 'GMXXSXJJSDCSBBQB' +
{219}'EFSJYHXWGZKPYLQB' + 'GLDLCCTNMAYDDKSS' + 'NGYCSGXLYZAYBN',
{220}'PTSDKDYLHGYMYLCX' + 'PYCJNDQJWXQXFYYF' + 'JLEJBZRXCCQWQQSB' +
{220}'ZKYMGPLBMJRQCFLN' + 'YMYQMSQYRBCJTHZT' + 'QFRXQHXMJJCJLX',
{221}'QGJMSHZKBSWYEMYL' + 'TXFSYDSGLYCJQXSJ' + 'NQBSCTYHBFTDCYZD' +
{221}'JWYGHQFRXWCKQKXE' + 'BPTLPXJZSRMEBWHJ' + 'LBJSLYYSMDXLCL',
{222}'QKXLHXJRZJMFQHXH' + 'WYWSBHTRXXGLHQHF' + 'NMCYKLDYXZPWLGGS' +
{222}'MTCFPAJJZYLJTYAN' + 'JGBJPLQGDZYQYAXB' + 'KYSECJSZNSLYZH',
{223}'ZXLZCGHPXZHZNYTD' + 'SBCJKDLZAYFMYDLE' + 'BBGQYZKXGLDNDNYS' +
{223}'KJSHDLYXBCGHXYPK' + 'DQMMZNGMMCLGWZSZ' + 'XZJFZNMLZZTHCS',
{224}'YDBDLLSCDDNLKJYK' + 'JSYCJLKOHQASDKNH' + 'CSGANHDAASHTCPLC' +
{224}'PQYBSDMPJLPCJOQL' + 'CDHJJYSPRCHNKNNL' + 'HLYYQYHWZPTCZG',
{225}'WWMZFFJQQQQYXACL' + 'BHKDJXDGMMYDJXZL' + 'LSYGXGKJRYWZWYCL' +
{225}'ZMSSJZLDBYDCPCXY' + 'HLXCHYZJQSQQAGMN' + 'YXPFRKSSBJLYXY',
{226}'SYGLNSCMHCWWMNZJ' + 'JLXXHCHSYD CTXRY' + 'CYXBYHCSMXJSZNPW' +
{226}'GPXXTAYBGAJCXLYS' + 'DCCWZOCWKCCSBNHC' + 'PDYZNFCYYTYCKX',
{227}'KYBSQKKYTQQXFCWC' + 'HCYKELZQBSQYJQCC' + 'LMTHSYWHMKTLKJLY' +
{227}'CXWHEQQHTQHZPQSQ' + 'SCFYMMDMGBWHWLGS' + 'LLYSDLMLXPTHMJ',
{228}'HWLJZYHZJXHTXJLH' + 'XRSWLWZJCBXMHZQX' + 'SDZPMGFCSGLSXYMJ' +
{228}'SHXPJXWMYQKSMYPL' + 'RTHBXFTPMHYXLCHL' + 'HLZYLXGSSSSTCL',
{229}'SLDCLRPBHZHXYYFH' + 'BBGDMYCNQQWLQHJJ' + 'ZYWJZYEJJDHPBLQX' +
{229}'TQKWHLCHQXAGTLXL' + 'JXMSLXHTZKZJECXJ' + 'CJNMFBYCSFYWYB',
{230}'JZGNYSDZSQYRSLJP' + 'CLPWXSDWEJBJCBCN' + 'AYTWGMPABCLYQPCL' +
{230}'ZXSBNMSGGFNZJJBZ' + 'SFZYNDXHPLQKZCZW' + 'ALSBCCJXJYZHWK',
{231}'YPSGXFZFCDKHJGXD' + 'LQFSGDSLQWZKXTMH' + 'SBGZMJZRGLYJBPML' +
{231}'MSXLZJQQHZSJCZYD' + 'JWBMJKLDDPMJEGXY' + 'HYLXHLQYQHKYCW',
{232}'CJMYYXNATJHYCCXZ' + 'PCQLBZWWYTWBQCML' + 'PMYRJCCCXFPZNZZL' +
{232}'JPLXXYZTZLGDLDCK' + 'LYRLZGQTGJHHGJLJ' + 'AXFGFJZSLCFDQZ',
{233}'LCLGJDJCSNCLLJPJ' + 'QDCCLCJXMYZFTSXG' + 'CGSBRZXJQQCTZHGY' +
{233}'QTJQQLZXJYLYLBCY' + 'AMCSTYLPDJBYREGK' + 'JZYZHLYSZQLZNW',
{234}'CZCLLWJQJJJKDGJZ' + 'OLBBZPPGLGHTGZXY' + 'GHZMYCNQSYCYHBHG' +
{234}'XKAMTXYXNBSKYZZG' + 'JZLQJDFCJXDYGJQJ' + 'JPMGWGJJJPKQSB',
{235}'GBMMCJSSCLPQPDXC' + 'DYYKYWCJDDYYGYWR' + 'HJRTGZNYQLDKLJSZ' +
{235}'ZGZQZJGDYKSHPZMT' + 'LCPWNJAFYZDJCNMW' + 'ESCYGLBTZCGMSS',
{236}'LLYXQSXSBSJSBBGG' + 'GHFJLYPMZJNLYYWD' + 'QSHZXTYYWHMCYHYW' +
{236}'DBXBTLMSYYYFSXJC' + 'SDXXLHJHF SXZQHF' + 'ZMZCZTQCXZXRTT',
{237}'DJHNNYZQQMNQDMMG' + 'LYDXMJGDHCDYZBFF' + 'ALLZTDLTFXMXQZDN' +
{237}'GWQDBDCZJDXBZGSQ' + 'QDDJCMBKZFFXMKDM' + 'DSYYSZCMLJDSYN',
{238}'SPRSKMKMPCKLGDBQ' + 'TFZSWTFGGLYPLLJZ' + 'HGJJGYPZLTCSMCNB' +
{238}'TJBQFKTHBYZGKPBB' + 'YMTDSSXTBNPDKLEY' + 'CJNYCDYKZDDHQH',
{239}'SDZSCTARLLTKZLGE' + 'CLLKJLQJAQNBDKKG' + 'HPJTZQKSECSHALQF' +
{239}'MMGJNLYJBBTMLYZX' + 'DCJPLDLPCQDHZYCB' + 'ZSCZBZMSLJFLKR',
{240}'ZJSNFRGJHXPDHYJY' + 'BZGDLJCSEZGXLBLH' + 'YXTWMABCHECMWYJY' +
{240}'ZLLJJYHLGBDJLSLY' + 'GKDZPZXJYYZLWCXS' + 'ZFGWYYDLYHCLJS',
{241}'CMBJHBLYZLYCBLYD' + 'PDQYSXQZBYTDKYYJ' + 'YYCNRJMPDJGKLCLJ' +
{241}'BCTBJDDBBLBLCZQR' + 'PPXJCGLZCSHLTOLJ' + 'NMDDDLNGKAQHQH',
{242}'JHYKHEZNMSHRP QQ' + 'JCHGMFPRXHJGDYCH' + 'GHLYRZQLCYQJNZSQ' +
{242}'TKQJYMSZSWLCFQQQ' + 'XYFGGYPTQWLMCRNF' + 'KKFSYYLQBMQAMM',
{243}'MYXCTPSHCPTXXZZS' + 'MPHPSHMCLMLDQFYQ' + 'XSZYJDJJZZHQPDSZ' +
{243}'GLSTJBCKBXYQZJSG' + 'PSXQZQZRQTBDKYXZ' + 'KHHGFLBCSMDLDG',
{244}'DZDBLZYYCXNNCSYB' + 'ZBFGLZZXSWMSCCMQ' + 'NJQSBDQSJTXXMBLT' +
{244}'XZCLZSHZCXRQJGJY' + 'LXZFJPHYXZQQYDFQ' + 'JJLZZNZJCDGZYG',
{245}'CTXMZYSCTLKPHTXH' + 'TLBJXJLXSCDQXCBB' + 'TJFQZFSLTJBTKQBX' +
{245}'XJJLJCHCZDBZJDCZ' + 'JDCPRNPQCJPFCZLC' + 'LZXBDMXMPHJSGZ',
{246}'GSZZQLYLWTJPFSYA' + 'SMCJBTZYYCWMYTCS' + 'JJLQCQLWZMALBXYF' +
{246}'BPNLSFHTGJWEJJXX' + 'GLLJSTGSHJQLZFKC' + 'GNNDSZFDEQFHBS',
{247}'AQTGYLBXMMYGSZLD' + 'YDQMJJRGBJTKGDHG' + 'KBLQKBDMBYLXWCXY' +
{247}'TTYBKMRTJZXQJBHL' + 'MHMJJZMQASLDCYXY' + 'QDLQCAFYWYXQHZ'
);
function ChnPy(Value: array of char): Char;
begin
Result := #0;
case Byte(Value[0]) of
176:
case Byte(Value[1]) of
161..196: Result := 'A';
197..254: Result := 'B';
end; {case}
177:
Result := 'B';
178:
case Byte(Value[1]) of
161..192: Result := 'B';
193..205: Result := 'C';
206: Result := 'S'; //參
207..254: Result := 'C';
end; {case}
179:
Result := 'C';
180:
case Byte(Value[1]) of
161..237: Result := 'C';
238..254: Result := 'D';
end; {case}
181:
Result := 'D';
182:
case Byte(Value[1]) of
161..233: Result := 'D';
234..254: Result := 'E';
end; {case}
183:
case Byte(Value[1]) of
161: Result := 'E';
162..254: Result := 'F';
end; {case}
184:
case Byte(Value[1]) of
161..192: Result := 'F';
193..254: Result := 'G';
end; {case}
185:
case Byte(Value[1]) of
161..253: Result := 'G';
254: Result := 'H';
end; {case}
186:
Result := 'H';
187:
case Byte(Value[1]) of
161..246: Result := 'H';
247..254: Result := 'J';
end; {case}
188..190:
Result := 'J';
191:
case Byte(Value[1]) of
161..165: Result := 'J';
166..254: Result := 'K';
end; {case}
192:
case Byte(Value[1]) of
161..171: Result := 'K';
172..254: Result := 'L';
end; {case}
193:
Result := 'L';
194:
case Byte(Value[1]) of
161..231: Result := 'L';
232..254: Result := 'M';
end; {case}
195:
Result := 'M';
196:
case Byte(Value[1]) of
161..194: Result := 'M';
195..254: Result := 'N';
end; {case}
197:
case Byte(Value[1]) of
161..181: Result := 'N';
182..189: Result := 'O';
190..254: Result := 'P';
end; {case}
198:
case Byte(Value[1]) of
161..217: Result := 'P';
218..254: Result := 'Q';
end; {case}
199:
Result := 'Q';
200:
case Byte(Value[1]) of
161..186: Result := 'Q';
187..245: Result := 'R';
246..254: Result := 'S';
end; {case}
201..202:
Result := 'S';
203:
case Byte(Value[1]) of
161..249: Result := 'S';
250..254: Result := 'T';
end; {case}
204:
Result := 'T';
205:
case Byte(Value[1]) of
161..217: Result := 'T';
218..254: Result := 'W';
end; {case}
206:
case Byte(Value[1]) of
161..243: Result := 'W';
244..254: Result := 'X';
end; {case}
207..208:
Result := 'X';
209:
case Byte(Value[1]) of
161..184: Result := 'X';
185..254: Result := 'Y';
end; {case}
210..211:
Result := 'Y';
212:
case Byte(Value[1]) of
161..208: Result := 'Y';
209..254: Result := 'Z';
end; {case}
213..215:
Result := 'Z';
216..247:
Result := py[Byte(Value[0])][Byte(Value[1]) - 160];
end; {case}
end;
function TitemMag.ChnToPY(Value: string): string;
var
I, L: Integer;
C: array[0..1] of char;
R: Char;
begin
Result := '';
L := Length(Value);
I := 1;
while I <= (L - 1) do
begin
if Value[I] < #160 then
begin
Result := Result + Value[I];
Inc(I);
end
else
begin
C[0] := Value[I];
C[1] := Value[I + 1];
R := ChnPY(C);
if r <> #0 then
Result := Result + R;
Inc(I, 2);
end;
end;
if I = L then
Result := Result + Value[L];
end;
❿ 一些著名的軟體都用什麼語言編寫
一、操作系統:
Microsoft Windows : 匯編 -> C -> C++
備註:曾經在智能手機的操作系統(Windows Mobile)考慮摻點C#寫的程序,比如軟鍵盤,結果因為寫出來的程序太慢,實在無法和別的模塊合並,最終又回到C++重寫。
相信很多朋友都知道Windows Vista,這個系統開發早期比爾蓋茨想全部用C#寫,但是最終因為執行慢而放棄,結果之前無數軟體工程師日夜勞作成果一夜之間被宣告作廢。
Linux :C
Apple MacOS : 主要為C,部分為C++。 備註: 之前用的語言比較雜,最早是匯編和Pascal。
Sun Solaris : C
HP-UX : C
Symbian OS : 匯編,主要為C++。 (諾基亞手機)
Google Android :2008 年推出: C語言(有傳言說是用Java開發的操作系統,但最近剛推出原生的C語言SDK)
RIM BlackBerry OS 4.x : 黑莓 C++
Microsoft Windows UI : C++
Apple MacOS UI (Aqua) : C++
Gnome (Linux圖形界面之一,大腳): C和C++, 主要是C。
KDE (Linux圖形界面) ,C++。
Google Desktop Search : C++
Microsoft Windows Desktop Search : C++
Beagle (Linux/Windows/UNIX 下): C# (基於開源的 .net : Mono)
Microsoft Office : 在 匯編 -> C -> 穩定在C++
Sun Open Office : 部分JAVA(對外介面),主要為C++ (開源,可下載其源代碼)
Corel Office/WordPerfect Office : 1996年嘗試過Java,次年被拋棄,重新回到C/C++
Adobe Systems Acrobat Reader/Distiller : C++
Oracle : 匯編、C、C++、Java。主要為C++。
MySQL : C++
IBM DB2 : 匯編、C、C++,主要為C。
Microsoft SQL Server : 匯編 -> C->C++
IBM Informix : 匯編、C、C++,主要為C。
SAP DB/MaxDB : C++
Microsoft Internet Explorer : C++
Mozilla Firefox : C++
Netscape Navigator : The code of Netscape browser was written in C, and Netscape engineers, all bought to Java (see M. Cusumano book and article) redeveloped the browser using Java. It was too slow and abandoned. Mozilla, the next version, was later developed using C++.
Safari : (2003年1月發布)C++
Google Chrome : (2008的發布)C++
Sun HotJava : Java (死於1999年)
Opera : C++ (手機上佔用率比較大)
Opera Mini : Opera Mini (2007) has a very funny architecture, and is indeed using both C++ and Java. The browser is split in two parts, an ultra thin (less than 100Kb) "viewer" client part and a server side responsible of rendering. The first uses Java and receives the page under the OBML format, the latter reuses classical Opera (C++) rendering engine plus Opera's Small Screen Rendering, on the server. This allows Opera to penetrate various J2ME-enabled portable devices, such as phones, while preserving excellent response time. This comes obviously with a few sacrifices, for instance on JavaScript execution.
Mosaic : 鼻祖(已死) C 語言
Microsoft Outlook : C++
IBM Lotus Notes : Java
Foxmail : Delphi
Microsoft Visual Studio : C++
Eclipse : Java (其圖形界面SWT基於C/C++)
Code::Blocks : C++
易語言: C++
火山中文: C++
火山移動: C++
Microsoft .Net CLR (.NET的虛擬機): C++
Java Virtual Machine (JVM) : Java 虛擬機:C++
SAP mySAP ERP : C,後主要為「ABAP/4」語言
Oracle Peoplesoft : C++ -> Java
Oracle E-Business Suite : Java
Business Objects : C++
Adobe Photoshop : C++
The GIMP : C
Google : 匯編 與 C++,主要為C++
eBay : 2002年為C++,後主要遷至Java
facebook : C++ 和 PHP
This line is only about facebook, not its plugins. Plugins can be developed in many different technologies, thanks to facebook's ORB/application server, Thrift. Thrift contains a compiler coded in C++. facebook people write about Thrift: "The multi-language code generation is well suited for search because it allows for application development in an efficient server side language (C++) and allows the Facebook PHP-based web application to make calls to the search service using Thrift PHP libraries." Aside the use of C++, facebook has adopted a LAMP architecture.
阿里巴巴和淘寶: php->C++/Java(主要用)
匯編、C、C++
星際爭霸、魔獸爭霸、CS、帝國時代、跑跑卡丁車、傳奇、魔獸世界.... 數不勝數了,自己數吧
都是用C++開發的,C++語言靠近系統地稱,執行速度最快。比如你的兩個朋友與你分別玩用VB、Java、與C++編寫的「跑跑卡丁車」,你玩C++編寫的 游戲 已經跑玩結束了,發現你的兩個朋友還沒開始跑呢,那是相當的卡啊,
Microsoft Visual C++ 編譯器: C++
Microsoft Visual Basic 解釋、編譯器: C++
Microsoft Visual C# : 編譯器: C++
gcc (GNU C compiler) : C
javac (Sun Java compiler) : Java
Perl : C++
PHP : C
Microsoft DirectX : C++
OpenGL : C
OGRE 3D : C++
Apache : C和C++,主要為C
Microsoft IIS : C++
Tomcat: Java
Jboss: Java
Microsoft Exchange Server : C->C++
Postfix : C
hMailServer : C++
Apache James : Java
Nero Burning ROM : C++
K3B : C++
Nullsoft Winamp : C++
Microsoft Windows Media Player : C++
Microsoft Windows Media Player : C++
eMule : C++
μtorrent : C++
Azureus : Java (圖形界面使用基於C/C++的SWT,類Eclipse)
TomTom : C++
Hertz NeverLost : C++
Garmin : C++
Motorola VIAMOTO : 2007年6月,停止服務。 Java。
Microsoft DirectX : C++(相信玩 游戲 的同學都知道這個,現在最高版本是DX11)
OpenGL : C
OGRE 3D : C++
Apache: C
Nginx: C
IIS: C
OpenStack: Python
綜述
著名的軟體一般是系統軟體,軟體一般都分為系統軟體和應用軟體。開發軟體分為一次開發和二次開發,比如開發操作系統(系統軟體),就是一次開發;在操作基礎上進行應用軟體的開發,比如開發 游戲 ,就是二次開發。
一次開發的系統軟體,要直接調用硬體資源,必須使用簡單、直接的底層語言和中層語言,比如匯編和C語言;二次開發應用軟體等,因為應用軟體的類別比較多的,針對的情況比較復雜和具體,因此可以選擇的語言很多,比如,大數據人工智慧方面的有Python;安卓手機APP就是Java等等。
這里還有一個誤區,其實語言不重要,每種語言都差不多,重要的是開發環境和編程思想。要學習編程開發,學的不是語言,而是對於開發環境工具的使用和編程思維的錘煉。很多著名的軟體都是用C等底層語言編寫的,但是也可以用其他語言編寫,不過很少學C了,其中有商業的原因。(後面會解釋)
集成開發環境軟體計算機語言是不可以單獨拿出來說的,比如我們說C語言,指的是C語言編譯器,而Python語言,指的是Python解釋器。而編譯器和解釋器卻都是用C語言編寫,是不是很意外,所以著名的軟體一般都是系統軟體,使用的是C語言,一個語言就要初中水平就可以學會了,但必須了解IDE開發環境。
要使用計算機語言,就必須安裝編譯器,或者是解釋器,程序員是在TXT文本上編寫語言的,用編譯器可以一次性編譯為可執行文件exe,用解釋器則可以逐條翻譯成機器語言並逐條執行。編譯器速度快,解釋器可以跨系統,到了別的系統,不需要程序員改寫程序,換一個解釋器就行了。
IDE集成開發環境具備圖形操作界面、編譯器、調制器、控制台,是非常重要的開發工具的,只會一個計算機的語言語法,卻不會使用IDE,基本上是沒用的!
編程思想很多著名的軟體都是使用C等底層語言編寫的,而且所用的都是編譯器。當然還有另外一個原因,就是編程思想,C語言是面向過程,Python是面向對象。很明顯,一次開發的系統軟體肯定是面向過程的,而面向具體使用場景的應用軟體肯定是面向對象的。
高手可以自由使用編程思想、程序編寫時,交替使用各種語言、切換解釋器或者編譯器,達到隱藏核心代碼目的;又或者軟體的核心模塊採用C等底層代碼,保證軟體的運行速度。畢竟開發時都是模塊化的,不同模塊使用不同的方法都是可以的!
所以很多著名的軟體,往往是混合著各種語言,核心部分是C,其他部分則根據不同的情況選用不同語言,之所以會這樣做,是因為使用C開發軟體要耗費大量的時間太。摩爾定律推動硬體發展,軟體開發也受到影響,一個軟體晚幾天推出市場,效果完全不同,所以程序員經常加班趕工,速度才是最重要的。
總結如上所述,著名的軟體是使用C等底層語言、編譯器語言、面向過程的語言編寫的,更多的是在一個軟體的核心部分使用C等底層語言、編譯器語言、面向過程的語言,其他則見機行事。
現在主流的語言是java、python和go