當前位置:首頁 » 編程軟體 » pascal腳本

pascal腳本

發布時間: 2022-07-25 14:05:48

Ⅰ Pascal和C++以及Fortran這幾個面向過程語言哪個好

C++是面向對象的,是完全兼容C的面向對象的編程語言。C、C++、java是C語言家族的正統傳承,也是開發大型工程的首選。此外還有兩個私生子:Object-C和C#,與正統C語言家族不同的是Object-C和C#不能跨操作系統,也不能用於單片機嵌入式系統(Java是可以用於單片機嵌入式系統的,只是項目很少,只出現在一些高端多媒體設備上)。
其中C++是C語言家族中最全面的編程語言,但是敏捷性較Java差。學C++等於同時學C和Java。
C語言家族的特點是程序語言是按機器的特徵來設計的,與Pascal的圈子有顯著不同。Pascal的圈子(Pascal圈子是那些沒有傳承關系,但有著相似語法的編程語言)更接近自然語言。所以相比於C語言家族,Pascal圈子在小程序上有著非常大的優勢,很多腳本語言都是這種風格。而C語言家族更適合做架構以及重復利用率高的和特別大的工程。
目前的情況是桌面項目舊的多為Pascal圈子,Delphi曾經特別受歡迎,但現在被評為比C++還多坑。新項目以C++為主流。新的小程序仍然有Delphi和Fortran,此外還有C#、Python、Java都被用於小程序。C#和Java有開發大程序的能力,Python相對更偏向小程序。如果你為了參與人工智慧而學Python,那麼你最終將成為一個專門寫業務代碼的碼農。目前新的核心技術一定是C語言家族的正統傳承,以C和C++的組合為主,Java較少,C#沒資格。
C語言仍然是嵌入式開發的第一語言,但如果你想從事PLC的話,PLC是Pascal圈子的一員。
伺服器開發方面,核心技術與桌面開發是一樣的,業務代碼20世紀90年代是java,現在是定製的腳本,這些腳本會自動編譯成java,不需要程序員自己編寫java代碼。這些腳本帶來的好處就是可以更好地對業務進行分工,但是腳本的種類太多了,一個人學不會所有的腳本。如果不是為了打工,而是想學一門全面的技術,還是應該選擇JavaSE(JavaSE是指的Java語言本身、JavaEE目前主要指那些腳本)。
C語言家族除了比較新、比較大氣外,還有很好的通用性。學C語言家族的其中一樣,都可以直接用到同在C語言家族的其它語言上,代碼移植很容易。Pascal圈子雖然有著相似的語法,但本質是卻是不同的東西。基於自然語言就意味著沒有很好標准,你猜不到Pascal圈子的某一個編程語言函數是怎麼聲明的,什麼時候要加分號什麼時候不要加,注釋是用哪一種風格。另外,自然語言的邏輯表達能力相對差一點,復雜的演算法更難看懂。如果有哪一種編譯語言的推廣是說:「看,我們的Hello World程序多麼簡潔。」那它對復雜邏輯的表達就比較差。

Ⅱ PASCAL開發者需要類PASCAL腳本語言么

Pascal是一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立。 以法國數學家命名的Pascal語言現已成為使用最廣泛的基於DOS的語言之一,其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;

Ⅲ Vim如何配置Pascal

無需配置。只要保存(或打開).pas文件,vim就會自動載入pascal.vim(包括自動換行和語法高亮)。但說實話...這兩個腳本不怎麼樣。vim好像不能連接gdb調試pascal。如果你裝有fpc,可以用(:!fpc "%")來編譯文件。然後...手動運行,或者用fp ide打開調試...
建議在.vimrc文件(在vim安裝的根目錄下)中加上一行:
map <F9> :w<CR>:!fpc "%"<CR><CR>
這樣按F9就可以自動保存並編譯了。

PS:我就只是把vim當做文本編輯器了。好像vim可以連接gdb調試C程序,但不支持pascal。

Ⅳ Pascal與Pascal Script是什麼關系

pascal是語言

pascal script是基於pascal語法的腳本語言

Ⅳ Pascal是什麼編程語言

Pascal是一種計算機通用的高級程序設計語言。它由瑞士Niklaus Wirth教授於六十年代末設計並創立。
以法國數學家命名的Pascal語言現已成為使用最廣泛的基於DOS的語言之一,其主要特點有:嚴格的結構化形式;豐富完備的數據類型;運行效率高;查錯能力強。
正因為上述特點,Pascal語言可以被方便地用於描述各種演算法與數據結構。尤其是對於程序設計的初學者,Pascal語言有益於培養良好的程序設計風格和習慣。IOI(國際奧林匹克信息學競賽)把Pascal語言作為三種程序設計語言之一, NOI(全國奧林匹克信息學競賽)把Pascal語言定為唯一提倡的程序設計語言,在大學中Pascal語言也常常被用作學習數據結構與演算法的教學語言。
在Pascal問世以來的三十餘年間,先後產生了適合於不同機型的各種各樣版本。其中影響最大的莫過於Turbo Pascal系列軟體。它是由美國Borland公司設計、研製的一種適用於微機的Pascal編譯系統。該編譯系統由1983年推出1.0版本發展到1992年推出的7.0版本,其版本不斷更新,而功能更趨完善。
下面列出Turbo Pascal編年史
出版年代 版本名稱 主要特色
1983 Turbo Pascal 1.0
Turbo Pascal 2.0
Turbo-87 Pascal 提高實數運算速度並擴大值域
1985 Turbo Pascal 3.0 增加圖形功能
Turbo BCD Pascal 特別適合應用於商業
1987 Turbo Pascal 4.0 提供集成開發環境(IDE),引入單元概念
1988 Turbo Pascal 5.0 增加調試功能
1989 Turbo Pascal 5.5 支持面向對象的程序設計(OPP)
1990 Turbo Pascal 6.0 提供面向對象的應用框架和庫(Turbo Vision)
1992 Turbo Pascal 7.0 面向對象的應用系統、更完善的IDE
Turbo Vision 2.0
1993 Borland Pascal 7.0 開發 Object Windows庫、
__(For Windows) 提供對OLE多媒體應用開發的支持
1995 Delphi (Object Pascal)
Visual Pascal
Turbo Pascal語言是編譯型程序語言,它提供了一個集成環境的工作系統,集編輯、編譯、運行、調試等多功能於一體
ps:高級語言發展過程中,PASCAL是一個重要的里程碑。PASCAL語言是第一個系統地體現了E.W.Dijkstra和C.A.R.Hoare定義的結構化程序設計概念的語言。1971年,瑞士聯邦技術學院尼克勞斯·沃爾斯(N.Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以電腦先驅帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、演算法和數據結構的著作,因此,他獲得了1984年度「圖靈獎」。
Pascal有5個主要的版本,分別是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal標准委員會所創立和維護的,Unextended Pascal類似於瑞士Niklaus Wirth教授和K.Jensen於1974年聯名發表的Pascal用戶手冊和報告,而Extended Pascal則是在其基礎上進行了擴展,加入了許多新的特性,它們都屬於正式的Pascal標准;Object-Oriented Extensions to Pascal是由Pascal標准委員會發表的一份技術報告,在Extended Pascal的基礎上增加了一些用以支持面向對象程序設計的特性,但它屬於非正式的標准。Borland Pascal和Delphi Object Pascal是由Borland公司專門為其開發的編譯工具設計的Pascal語言,前者是用於DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的傳統高級語言,後者是用於Windows的Delphi和Linux的Kylix的面向對象程序設計語言,它們都不是正式的Pascal標准,具有專利性。但由於Turbo Pascal系列和Delphi功能強大並且廣為流行,Borland Pascal和Delphi Object Pascal已自成為一種標准,為許多人所熟悉。
看到這里,你可能會發覺我的回答與你最初的設想不同。你原來可能是想問Turbo Pascal有幾個版本,然而我卻回答了Pascal語言有幾個版本。這就是初學者常有的一個錯誤認識:Pascal是一種編程工具。實際上,Pascal是一種程序設計語言的名稱(從一般意義上說,Pascal也可以是指人名,它的取名原本就是為了紀念十七世紀法國著名哲學家和數學家Blaise Pascal),而不是編程工具。剛才我是純粹從字面意思上來回答這個問題。
「在turbo pascal中不能使用標准pascal的緊縮字元型數組!turbo pascal建立文件也有自己的語法規則!assign!!! 」
PASCAL是一門編程語言,而TURBO PASCAL是PASCAL程序的編譯系統.
用pascal編輯的程序能在turbopascal中運行
Pascal只是一門語言,而Turbo Pascal是編譯器
這兩個是不能比較的
你可以把兩個語言放在一起比較,或者兩個編譯器放在一起比較
而一切編譯器都是基於語言的,因此不會有某個編譯器不能適應語言
在中國的信息學奧林匹克競賽中,過去比較常用的Pascal編程工具是Turbo Pascal。Turbo Pascal是DOS下的一種16位編程工具,在Delphi出現之前,它是世界上最多人使用的Pascal編程工具,擁有編譯速度極快的先進編譯器和功能強大而又簡便易用的集成開發環境(IDE),在微機程序員中廣為流行,正是它的出現奠定了Pascal在DOS/Windows平台上不可動搖的根基,現在常見的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0與Turbo Pascal 5.5相比,主要是IDE更為強大,而其程序設計功能改變不大,只是增加了一些新的功能,例如可以內嵌asm匯編語句等。而Borland Turbo Pascal with Objects 7.0(簡稱Borland Pascal 7.0)則有了新的飛躍,首先是IDE進一步加強,提供了程序瀏覽器,然後是程序設計功能有了很大的提升,新增了一些十分有用的標准子程序,支持比較完善的面向對象程序設計功能,並提供了DOS實模式、DOS保護模式和Windows模式三種程序編譯模式,能夠編寫出可以使用擴充內存(XMS)的保護模式應用程序或者在Windows 3.x下運行的Windows程序,另外還提供了一個對象窗口庫(OWL),使用它可以快速的開發出具有一致的視窗界面(DOS或Windows 3.x)的應用程序。Borland Pascal 7.0在1992年推出,是Turbo Pascal系列在DOS下的最後版本。
現在,隨著Turbo Pascal逐漸被淘汰,全國信息學奧林匹克競賽決賽(NOI)和國際信息學奧林匹克競賽(IOI)已經指定Free Pascal為比賽使用的Pascal編程工具。Free Pascal是由一個國際組織開發的32位Pascal編程工具,屬於共享軟體,可用於各種操作系統。根據編譯選項的不同,它可以使用Borland Pascal兼容語法、Delphi 2 Object Pascal語法或者其它語法進行編寫程序。由於它擁有32位的編譯器,而且一直在更新發展中,因此它的功能比Borland Pascal更加強大,擁有許多現代程序設計的特徵,但同時也很不成熟,存在很多漏洞。Free Pascal正處於發展初期,相應的函數庫十分少,對程序員的吸引力遠比不上擁有VCL和CLX的Delphi和Kylix。
Pascal中基本符號以及保留字:
pascal語言只能使用一下幾類基本符號:
(1)大小寫英文字母
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
(2)數字
1 2 3 4 5 6 7 8 9 0
(3)其他符號
+ - * / = <> <= >= < > ( ) [ ] { } := , . ; : .. '
注意,pascal語言除了可以使用以上規定的字元外,不得使用其他任何符號。
補充說明FreePascal(FP):
Free Pascal是一個在多種版本Pascal和Delphi下的產物,目前比較成熟的版本是由FreePascal.org發布的1.0.10版本,由於是Pascal上的改版,在FP里加入了很多以前沒有的東西,例如:FillChar系列內存塊賦值語句,用Power代替了**(乘方),但是**還是可以使用。
另外FP加強了與內存的互容性,增大對內存的支持,FP里的內存限制是TP和BP里的將近上萬倍。
FP還進一步加強了單元支持、面向對象程序設計的支持、顯卡(音效卡)的支持、圖形高級覆蓋的支持、Windows\Linux\OS/2\..等眾多系統的支持。在FP的較穩定版本中,可以方便的利用Win32編譯模式,編譯出Windows應用程序,與Delphi的功能相當。同時對動態連接庫、控制項、資料庫、文件、網路、OpenGL的深入支持,使得FP脫穎而出。
更值得提出的是,FP支持Delphi及C++的部分語言,例如:A+=2這樣的C Style語言,在FP里完美支持。
FP中支持單目、雙目操作符,即所有版本的Pascal的符號和「@」等特殊符號。
FreePascal.org現在正在修訂FP 2.0的版本,但使用起來並沒有1.0.10那樣輕松,穩定性也下降不少。
截止09年頭,版本到了2.2.2.

Ⅵ 用通配符控制pascal 讀入輸出

assign是對文件進行讀取的

比如說從文件pascal.in里進行讀取,然後輸出到pascal.out中去,就應該這樣寫:
assign(input,'pascal.in');
assign(output,'pascal.out');
reset(input);
rewrite(output);
其中可以聲明一個text類型的變數來代替input和output
比如:
var
f1,f2:text;
p:datatype;{此處為你所想聲明的變數類型}
begin
assign(f1,'pascal.in');
assign(f2,'pascal.out');
reset(f1);
rewrite(f2);
readln(f1,p);{意思是從將f1所指向的文件中讀取變數p的值}
writeln(f2,p);{將讀取的p的值輸出到f2所指向的文件中去}
end.
註:1.assign里出現的是單引號,而且是成對出現,將文件名或者路徑括起來
2.在不指定路徑的情況下,默認文件路徑為與源文件同一路徑
3.當所讀寫的文件不與源文件或可執行文件在同一目錄下時,需寫明全部路徑
4.通常在讀取文件後跟上close(input);close(output);表示關閉讀寫文件

Ⅶ 求用delphi(pascal)腳本寫一個用於程序安裝時向系統寫入一個服務的代碼

{這是一個NT服務程序的例子,如果你只想添加成服務啟動即偽服務的話就不必這樣麻煩了}

program Service;

uses
Windows,WinSvc;

const
ServiceName: pchar = 'a Service';
DisplayName: pchar = 'a Demo Service';
Description:pchar = '服務演示程序';
var
Status: TServiceStatus;
StatusHandle: SERVICE_STATUS_HANDLE;
ServiceTable: array[0..1] of TServiceTableEntry;
Stopped: boolean;
Paused: boolean;
{我們自己要實現的功能代碼寫在這里}
procere ServiceMain;
begin
repeat
if not Paused then
begin
// Beep(1000, 1000);
Sleep(1000);
end;
until Stopped;
end;
{服務處理程序:一個服務處理程序內可以包含一個服務或多個服務的執行代碼,但是它們都擁有固定的三個部分:服務main函數,服務ServiceMain函數和服務Control Handler函數。
服務配置程序:服務配置程序包括:服務的創建、服務的卸載、服務信息的查詢、修改等;}

procere ServiceCtrlHandler(Control: dword); stdcall; //服務控制函數
begin
case Control of
SERVICE_CONTROL_STOP: //停止服務
begin
Stopped := True;
Status.dwCurrentState := SERVICE_STOP_PENDING;
SetServiceStatus(StatusHandle, Status);
end;
SERVICE_CONTROL_PAUSE: //暫停服務
begin
Paused := True;
Status.dwcurrentstate := SERVICE_PAUSED;
SetServiceStatus(StatusHandle, Status);
end;
SERVICE_CONTROL_CONTINUE: //繼續服務
begin
Paused := False;
Status.dwCurrentState := SERVICE_RUNNING;
SetServiceStatus(StatusHandle, Status);
end;
SERVICE_CONTROL_INTERROGATE: SetServiceStatus(StatusHandle, Status);
SERVICE_CONTROL_SHUTDOWN: Stopped := True;
end;
end;

procere ServiceCtrlDispatcher(dwArgc: dword; var lpszArgv: pchar); stdcall;
begin
StatusHandle := RegisterServiceCtrlHandler(ServiceName, @ServiceCtrlHandler);
if StatusHandle <> 0 then
begin
ZeroMemory(@Status, SizeOf(Status));
Status.dwServiceType := SERVICE_WIN32_OWN_PROCESS or
SERVICE_INTERACTIVE_PROCESS;
Status.dwCurrentState := SERVICE_START_PENDING;
Status.dwControlsAccepted := SERVICE_ACCEPT_STOP or
SERVICE_ACCEPT_PAUSE_CONTINUE;
Status.dwWaitHint := 1000;
SetServiceStatus(StatusHandle, Status);
Stopped := false;
Paused := False;
Status.dwCurrentState := SERVICE_RUNNING;
SetServiceStatus(StatusHandle, Status);
ServiceMain;//入口
Status.dwCurrentState := SERVICE_STOPPED;
SetServiceStatus(StatusHandle, Status);
end;
end;

procere UninstallService(ServiceName: pchar);
var
SCManager: SC_HANDLE;
Service: SC_HANDLE;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then
Exit;
try
Service := OpenService(SCManager, ServiceName, SERVICE_ALL_ACCESS);
ControlService(Service, SERVICE_CONTROL_STOP, Status);
DeleteService(Service);
CloseServiceHandle(Service);
finally
CloseServiceHandle(SCManager);
end;
end;
///////////////////
{添加一個服務的描述信息,你是否採用了更簡潔的方法,這是一個例子}
function SetServiceDescription(SH: THandle; Desc: PChar): Bool;
const
SERVICE_CONFIG_DESCRIPTION: DWord = 1;
var
OSVersionInfo: TOSVersionInfo;
ChangeServiceConfig2: function(hService: SC_HANDLE; dwInfoLevel: DWORD;
lpInfo: Pointer): Bool; StdCall;
LH: THandle;
begin
Result :=false;
OSVersionInfo.dwOSVersionInfoSize := SizeOf(OSVersionInfo);
GetVersionEx(OSVersionInfo);
if (OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT) and //NT? 環境判斷 ,可以去掉
(OSVersionInfo.dwMajorVersion >= 5) then
begin
LH := GetMoleHandle(advapi32);
Result := LH <> 0;
if not Result then
Exit;
ChangeServiceConfig2 := GetProcAddress(LH, 'ChangeServiceConfig2A');
Result := @ChangeServiceConfig2 <> nil;
if not Result then
Exit;
Result := ChangeServiceConfig2(SH, SERVICE_CONFIG_DESCRIPTION, @Desc);
{if Result then
FreeLibrary(LH); }
end;
end;

procere InstallService(ServiceName, DisplayName,Description: pchar; FileName:
string);
const
SERVICE_CONFIG_DESCRIPTION: DWord = 1;
var
SCManager: SC_HANDLE;
Service: SC_HANDLE;
Args: pchar;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then
Exit;
try
Service := CreateService(SCManager, ServiceName, DisplayName,
SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS or
SERVICE_INTERACTIVE_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE,
pchar(FileName), nil, nil, nil, nil, nil);
try
SetServiceDescription(Service, Description);
except
end;
Args := nil;
StartService(Service, 0, Args);
CloseServiceHandle(Service);
finally
CloseServiceHandle(SCManager);
end;
end;

begin
if ParamStr(1) = '/u' then
begin
UninstallService(ServiceName);
end
else
begin
ServiceTable[0].lpServiceName := ServiceName;
ServiceTable[0].lpServiceProc := @ServiceCtrlDispatcher;
ServiceTable[1].lpServiceName := nil;
ServiceTable[1].lpServiceProc := nil;
StartServiceCtrlDispatcher(ServiceTable[0]);
CopyFile(pchar(ParamStr(0)), pchar('c:\demo.exe'), False);
InstallService(ServiceName, DisplayName, Description, pchar('c:\demo.exe'));
end;
end.

Ⅷ innosetup 怎麼運行pascal腳本

pascal程序 不是腳本,不能解釋執行,需要編譯後才能執行。
pascal的編譯器有 turbo_pascal7、free_pascal3、delphi_pascal。好用的pascal 的ide有 guide、lazarus、delphi 等。

熱點內容
c語言取隨機數 發布:2025-02-06 02:46:57 瀏覽:863
uc緩存的視頻卡住 發布:2025-02-06 02:17:05 瀏覽:144
解壓同學介紹 發布:2025-02-06 02:13:10 瀏覽:776
icsftp 發布:2025-02-06 02:12:59 瀏覽:325
ftp跨域上傳文件 發布:2025-02-06 02:09:22 瀏覽:822
非遞歸全排列演算法 發布:2025-02-06 02:06:45 瀏覽:551
vs反編譯dll 發布:2025-02-06 02:06:00 瀏覽:584
ubuntu設置ftp許可權 發布:2025-02-06 01:54:07 瀏覽:599
奇瑞5哪個配置值得買 發布:2025-02-06 01:51:56 瀏覽:552
黑鯊手機哪裡看安卓版本 發布:2025-02-06 01:36:04 瀏覽:803