Как сделать калькулятор в Delphi?

Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.

Как Delphi реализует многоплатформенную разработку?

Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...

Быстрый поиск в файле

Советы » Файлы » Быстрый поиск в файле

Стоит сказать то, что если действительно требуется высокая скорость работы, то лучшего всего переводить процедуру StrEQ на Assembler.


function

StrEq(Data1,Data2: Pointer; Len: Word; CS: Boolean): Boolean; type


Arr = array[1..$FFFF] of Char; var


x: Word;
d1: ^Arr absolute Data1; d2: ^Arr absolute Data2; begin


StrEq:=True;
for x:=1 to Len do if d1^[x]<>d2^[x]then begin
if not CS and (UpCase(d1^[x])=UpCase(d2^[x])) then Continue; StrEq:=false;
exit;
end;
end

;


function

FindStr(var f: file; SearchPattern: Pointer; PatternLength: Word; CS: Boolean): Longint;
const


Size: Word = 16384;
var


Buffer: Pointer;
Position: LongInt;
BufSize,NBlocks,i,j,Fake: Word; begin


BufSize:=Size+PatternLength; GetMem(Buffer,BufSize);
NBlocks:=((FileSize(f)-FilePos(f)) div size)+1; Position:=FilePos(f);
for i:=1 to NBlocks do
begin
BlockRead(f,Buffer^,BufSize,Fake); for j:=0 to size do
begin
{$IfDef Ver70}
if StrEq(Ptr(Seg(Buffer^),Ofs(Buffer^)+j),SearchPattern,PatternLength,CS) then
{$EndIf}
{$IfDef VirtualPascal}
if StrEq(Ptr(Ofs(Buffer^)+j),SearchPattern,PatternLength,CS) then {$EndIf}
begin
FreeMem(Buffer,BufSize); if Position>FileSize(f)then Position:=-1; FindStr:=Position;
Seek(f,Position+PatternLength); Exit;
end;
Inc(Position);
end;
Seek(f,FilePos(f)-PatternLength+1); end;
FreeMem(Buffer,BufSize); FindStr:=-1;
end

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2024 - All Rights Reserved - www.delphirus.com