русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ЗАКЛЮЧЕНИЕ


Дата добавления: 2015-06-12; просмотров: 569; Нарушение авторских прав


В ходе курсовой работы мною была создана, на языке программирования Delphi, была реализированна программа выполняющая разбивку большого файла на куски определенного размера и его обратную сборку. В настоящее время широко в нашу жизнь внедряются информационные технологии. На сегодняшний день, наверное, не осталось никакой области, где бы они ни применялись. Одной из сфер деятельности, в которой информационные технологии получили широкое распространение, является сфера образования.

В результате курсовой работы были выполнены следующие этапы:

1. Обследование и разработка технического задания

2. Построение блок-схемы программы

3. Разработка программы.

Таким образом, мы приходим к следующему выводу - использование разработанной программы будет нужна, когда на носителе не будет нужного размера памяти, т.е. программа поможет разбить файл таким образом чтобы можно было записать их на несколько носителей, а после собрать в один исходный файл.

СПИСОК ЛИТЕРАТУРЫ

1. Зуев Е.А. Практическое программирование на языке Turbo Pascal 6.0, 7.0. - М.: Радио и связь, 1994.

2. Зубов В.С. Программирование на языке Turbo Pascal (версии 6.0 и 7.0). - М.: Информационно-издательский дом "Филинъ", 1997. - 320 с.

3. Культин Н.Б. Программирование в Turbo Pascal и Delphi. - СПб.: BHV - Санкт-Петербург, 1998. - 240 с.

4. Семакин И.Г., Шестаков А.П. Лекции по программированию. - Пермь, изд-во ПГУ, 1998.

5. Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования: Учебник для сред. проф. образования / И.Г. Семакин, А.П. Шестаков. - М.: Издательский центр "Академия", 2008. - 400 с. (Допущено Министерством образования и науки Российской Федерации).

6. Кнут, Д.Э. Искусство программирования. В 3 т. Т1. Основные алгоритмы: учеб. пособие [пер. с англ.] / Д.Э. Кнут.- 3-е изд.-М. и др.: Вильямс, 2000. -720 с.



7. Бежанова, М.М. Практическое программирование: структуры данных и алгоритмы: учеб. для вузов / М.М. Бежанова, Л.А. Москвина, И.В. Поттосин.- М.: Логос, 2001. – 223

ПРИЛОЖЕНИЕ

Программа состоит из 3-х модулей:

Исходный код программы:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

SplitUtils in 'SplitUtils.pas',

Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

 

Код программы 1-го модуля:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;

type

TForm2 = class(TForm)

Image1: TImage;

Label1: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Image1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

Uses Unit1;

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

Form1.Show;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm2.Image1Click(Sender: TObject);

begin

end;

end.

 

Код программы 2-го модуля:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, XPMan, ExtCtrls, Menus, jpeg;

type

TForm1 = class(TForm)

Button1: TButton;

OpenDialog1: TOpenDialog;

XPManifest1: TXPManifest;

Edit1: TEdit;

Label1: TLabel;

Button2: TButton;

OpenDialog2: TOpenDialog;

SaveDialog1: TSaveDialog;

StatusBar1: TStatusBar;

Edit2: TEdit;

GroupBox1: TGroupBox;

RadioGroup1: TRadioGroup;

MainMenu1: TMainMenu;

File1: TMenuItem;

Help1: TMenuItem;

About1: TMenuItem;

Splitting1: TMenuItem;

picking1: TMenuItem;

Exit1: TMenuItem;

MainForm1: TMenuItem;

Help2: TMenuItem;

AAboutprogram1: TMenuItem;

Close1: TMenuItem;

Label2: TLabel;

Label3: TLabel;

Image1: TImage;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Splitting1Click(Sender: TObject);

procedure picking1Click(Sender: TObject);

procedure MainForm1Click(Sender: TObject);

procedure Close1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

pb : TProgressBar;

implementation

{$R *.dfm}

uses

SplitUtils, CommCtrl, Unit2;

resourcestring

READY = ' Ãîòîâî';

WORKING = ' Ðàáîòàþ...';

ONLYDIGITS = 'Íåïðàâèëüíî óêàçàí ðàçìåð òîìà,'#13'ââîäèòå òîëüêî öèôðû !';

ERRORDIGITS = 'Íåïðàâèëüíî óêàçàí ðàçìåð òîìà,'#13'îí áîëüøå ðàçìåðà èñõîäíîãî ôàéëà !';

IPROTECT = 'Ðàçáîðêó è ñáîðêó ôàéëîâ ìîæíî ïðîèçâîäèòü òîëüêî íà æ¸ñòêîì äèñêå !';

function GetPanelRect: TRect;

begin

SendMessage(Form1.StatusBar1.Handle, SB_GETRECT, 0, integer(@result));

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

pb := TProgressBar.Create(StatusBar1);

pb.Visible := false;

pb.Parent := StatusBar1;

pb.BoundsRect := GetPanelRect;

pb.Smooth := true;

pb.Step := 1;

end;

procedure TForm1.Button1Click(Sender: TObject);

const

MASK = '.part*';

COPY_ = 'copy /b';

var

ITOG, FIND,

inFile,

DT, BATNAME, FSIZE : String;

H : Integer;

begin

opendialog1.FileName := '';

if opendialog1.Execute then

begin

if not FileExists(opendialog1.FileName) then EXIT;

if not IsDigits(Edit1.Text) then

begin

ShowMessage(ONLYDIGITS);

EXIT;

end;

if GetFileSize(opendialog1.Files[0]) <= StrToInt(Edit1.Text) then

begin

ShowMessage(ERRORDIGITS);

EXIT;

end;

if not FileDriveIsFixed(OpenDialog1.FileName) then

begin

ShowMessage(IPROTECT);

EXIT;

end;

if opendialog1.Files.Count > 1 then

begin

StatusBar1.Panels[1].Text := WORKING;

pb.Visible := true;

for H := 0 To opendialog1.Files.Count - 1 do

begin

Edit2.Text:= GetFileCRC32Hex(opendialog1.Files[H]);

inFile:=opendialog1.Files[H];

SplitFile(inFile, StrToInt(Edit1.Text), pb);

FIND := inFile + MASK;

ITOG := FORMAT('%s %s "%s"', [COPY_, GetPartList(FIND), ExtractFileName(inFile)]);

if RadioGroup1.ItemIndex = 2 then SaveBat(BATNAME, 'Pause', True)

else

begin

BATNAME := Format('%s.bat', [opendialog1.Files[H]]);

DT:= Format('[%s %s]', [DateToStr(Date), TimeToStr(Time)]);

FSIZE := Format('Ðàçìåð: %s', [GetKByte(GetFileSize(inFile))]);

SaveBat(BATNAME, Format('REM <%s> CRC32: %s %s %s', [ExtractFileName(inFile), Edit2.Text, FSIZE, DT]), False);

SaveBat(BATNAME, ITOG, True);

if RadioGroup1.ItemIndex > 0 then SaveBat(BATNAME, 'Pause', True);

end;

end;

if RadioGroup1.ItemIndex = 1 then SaveBat(BATNAME, 'Pause', True);

end else

begin

Edit2.Text := GetFileCRC32Hex(opendialog1.FileName);

StatusBar1.Panels[1].Text := WORKING;

pb.Visible := true;

inFile := {ExtractShortPathName(}opendialog1.filename{)};

SplitFile(inFile, StrToInt(Edit1.Text), pb);

FIND := inFile + MASK;

ITOG := FORMAT('%s %s "%s"', [COPY_, GetPartList(FIND), ExtractFileName(inFile)]);

BATNAME := FORMAT('%s.bat', [opendialog1.filename]);

DT := Format('[%s %s]', [DateToStr(Date), TimeToStr(Time)]);

FSIZE := Format('Ðàçìåð: %s', [GetKByte(GetFileSize(inFile))]);

SaveBat(BATNAME, Format('REM <%s> CRC32: %s %s %s', [ExtractFileName(inFile), Edit2.Text, FSIZE, DT]), False);

SaveBat(BATNAME, ITOG, True);

if RadioGroup1.ItemIndex > 0 then SaveBat(BATNAME, 'Pause', True);

end;

end;

pb.Position := 0;

pb.Visible := false;

StatusBar1.Panels[1].Text := READY;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

opendialog2.FileName := '';

if opendialog2.Execute then

begin

if not FileExists(opendialog2.FileName) then EXIT;

savedialog1.FileName := ChangeFileExt(opendialog2.FileName, '');

if savedialog1.execute then

begin

if savedialog1.FileName = '' then EXIT;

if not FileDriveIsFixed(SaveDialog1.FileName) then

begin

ShowMessage(IPROTECT);

EXIT;

end;

StatusBar1.Panels[1].Text := WORKING;

CombineFiles(opendialog2.filename, savedialog1.filename);

Edit2.Text := GetFileCRC32Hex(savedialog1.FileName);

StatusBar1.Panels[1].Text := READY;

end;

end;

end;

procedure TForm1.Splitting1Click(Sender: TObject);

const

MASK = '.part*';

COPY_ = 'copy /b';

var

ITOG, FIND,

inFile,

DT, BATNAME, FSIZE: String;

H: Integer;

begin

opendialog1.FileName:= '';

if opendialog1.Execute then

begin

if not FileExists(opendialog1.FileName) then EXIT;

if not IsDigits(Edit1.Text) then

begin

ShowMessage(ONLYDIGITS);

EXIT;

end;

if GetFileSize(opendialog1.Files[0]) <= StrToInt(Edit1.Text) then

begin

ShowMessage(ERRORDIGITS);

EXIT;

end;

if not FileDriveIsFixed(OpenDialog1.FileName) then

begin

ShowMessage(IPROTECT);

EXIT;

end;

if opendialog1.Files.Count > 1 then

begin

StatusBar1.Panels[1].Text := WORKING;

pb.Visible := true;

for H := 0 To opendialog1.Files.Count - 1 do

begin

Edit2.Text := GetFileCRC32Hex(opendialog1.Files[H]);

inFile := opendialog1.Files[H];

SplitFile(inFile, StrToInt(Edit1.Text), pb);

FIND := inFile + MASK;

ITOG := FORMAT('%s %s "%s"', [COPY_, GetPartList(FIND), ExtractFileName(inFile)]);

if RadioGroup1.ItemIndex = 2 then SaveBat(BATNAME, 'Pause', True)

else

begin

BATNAME := Format('%s.bat', [opendialog1.Files[H]]);

DT := Format('[%s %s]', [DateToStr(Date), TimeToStr(Time)]);

FSIZE := Format('Ðàçìåð: %s', [GetKByte(GetFileSize(inFile))]);

SaveBat(BATNAME, Format('REM <%s> CRC32: %s %s %s', [ExtractFileName(inFile), Edit2.Text, FSIZE, DT]), False);

SaveBat(BATNAME, ITOG, True);

if RadioGroup1.ItemIndex > 0 then SaveBat(BATNAME, 'Pause', True);

end;

end;

if RadioGroup1.ItemIndex = 1 then SaveBat(BATNAME, 'Pause', True);

end else

begin

Edit2.Text := GetFileCRC32Hex(opendialog1.FileName);

StatusBar1.Panels[1].Text := WORKING;

pb.Visible := true;

inFile := opendialog1.filename;

SplitFile(inFile, StrToInt(Edit1.Text), pb);

FIND := inFile + MASK;

ITOG := FORMAT('%s %s "%s"', [COPY_, GetPartList(FIND), ExtractFileName(inFile)]);

BATNAME := FORMAT('%s.bat', [opendialog1.filename]);

DT := Format('[%s %s]', [DateToStr(Date), TimeToStr(Time)]);

FSIZE := Format('Ðàçìåð: %s', [GetKByte(GetFileSize(inFile))]);

SaveBat(BATNAME, Format('REM <%s> CRC32: %s %s %s', [ExtractFileName(inFile), Edit2.Text, FSIZE, DT]), False);

SaveBat(BATNAME, ITOG, True);

if RadioGroup1.ItemIndex > 0 then SaveBat(BATNAME, 'Pause', True);

end;

end;

pb.Position := 0;

pb.Visible := false;

StatusBar1.Panels[1].Text := READY;

end;

procedure TForm1.picking1Click(Sender: TObject);

begin

opendialog2.FileName := '';

if opendialog2.Execute then

begin

if not FileExists(opendialog2.FileName) then EXIT;

savedialog1.FileName := ChangeFileExt(opendialog2.FileName, '');

if savedialog1.execute then

begin

if savedialog1.FileName = '' then EXIT;

if not FileDriveIsFixed(SaveDialog1.FileName) then

begin

ShowMessage(IPROTECT);

EXIT;

end;

StatusBar1.Panels[1].Text := WORKING;

CombineFiles(opendialog2.filename, savedialog1.filename);

Edit2.Text := GetFileCRC32Hex(savedialog1.FileName);

StatusBar1.Panels[1].Text := READY;

end;

end;

end;

procedure TForm1.MainForm1Click(Sender: TObject);

begin

Form2.Show;

end;

procedure TForm1.Close1Click(Sender: TObject);

begin

close;

Form2.show;

end;

end.

 

Код программы 3-го модуля:

unit SplitUtils;

interface

uses

Windows,Unit2, Forms, SysUtils, Classes, ComCtrls, CommCtrl;

function DriveIsFixed(Drive: PChar): boolean;

function GetFileCRC32Hex(const Filename: String): String;

function GetFileSize(const FileName: string): Longint;

function GetKByte(Byte: integer): string;

procedure SplitFile(FileName: TFileName; SizeofFiles: Integer; ProgressBar: TProgressBar);

procedure CombineFiles(FileName, CombinedFileName: TFileName);

procedure SaveBat(FileName: TFileName; Text: String; AddInExistingFile: Boolean = True);

function IsDigits(Str: String): boolean;

function GetPartList(MASKA: string): string;

function FileDriveIsFixed(FileName: TFileName): boolean;

implementation

 

function DriveIsFixed(Drive: PChar): boolean;

var

i: integer;

begin

i := GetDriveType(Drive);

//0-Unknown, 1-NoDrive, 2-Floppy, 3-Fixed, 4-Network, 5-CDROM, 6-RAM

Result := (i = 3);

end;

function FileDriveIsFixed(FileName: TFileName): boolean;

var

i : integer;

DRIVE : String;

begin

DRIVE := ExtractFileDrive(FileName);

DRIVE := Copy(DRIVE, 0, 1) + ':\';

i := GetDriveType(PChar(DRIVE));

Result := (i = 3);

end;

function GetFileCRC32Int(const Filename: String): DWord;

const

dwCRC32Table: array[0..255] of DWORD =

($00000000, $77073096, $EE0E612C, $990951BA,

$076DC419, $706AF48F, $E963A535, $9E6495A3,

$0EDB8832, $79DCB8A4, $E0D5E91E, $97D2D988,

$09B64C2B, $7EB17CBD, $E7B82D07, $90BF1D91,

$1DB71064, $6AB020F2, $F3B97148, $84BE41DE,

$1ADAD47D, $6DDDE4EB, $F4D4B551, $83D385C7,

$136C9856, $646BA8C0, $FD62F97A, $8A65C9EC,

$14015C4F, $63066CD9, $FA0F3D63, $8D080DF5,

$3B6E20C8, $4C69105E, $D56041E4, $A2677172,

$3C03E4D1, $4B04D447, $D20D85FD, $A50AB56B,

$35B5A8FA, $42B2986C, $DBBBC9D6, $ACBCF940,

$32D86CE3, $45DF5C75, $DCD60DCF, $ABD13D59,

$26D930AC, $51DE003A, $C8D75180, $BFD06116,

$21B4F4B5, $56B3C423, $CFBA9599, $B8BDA50F,

$2802B89E, $5F058808, $C60CD9B2, $B10BE924,

$2F6F7C87, $58684C11, $C1611DAB, $B6662D3D,

$76DC4190, $01DB7106, $98D220BC, $EFD5102A,

$71B18589, $06B6B51F, $9FBFE4A5, $E8B8D433,

$7807C9A2, $0F00F934, $9609A88E, $E10E9818,

$7F6A0DBB, $086D3D2D, $91646C97, $E6635C01,

$6B6B51F4, $1C6C6162, $856530D8, $F262004E,

$6C0695ED, $1B01A57B, $8208F4C1, $F50FC457,

$65B0D9C6, $12B7E950, $8BBEB8EA, $FCB9887C,

$62DD1DDF, $15DA2D49, $8CD37CF3, $FBD44C65,

$4DB26158, $3AB551CE, $A3BC0074, $D4BB30E2,

$4ADFA541, $3DD895D7, $A4D1C46D, $D3D6F4FB,

$4369E96A, $346ED9FC, $AD678846, $DA60B8D0,

$44042D73, $33031DE5, $AA0A4C5F, $DD0D7CC9,

$5005713C, $270241AA, $BE0B1010, $C90C2086,

$5768B525, $206F85B3, $B966D409, $CE61E49F,

$5EDEF90E, $29D9C998, $B0D09822, $C7D7A8B4,

$59B33D17, $2EB40D81, $B7BD5C3B, $C0BA6CAD,

$EDB88320, $9ABFB3B6, $03B6E20C, $74B1D29A,

$EAD54739, $9DD277AF, $04DB2615, $73DC1683,

$E3630B12, $94643B84, $0D6D6A3E, $7A6A5AA8,

$E40ECF0B, $9309FF9D, $0A00AE27, $7D079EB1,

$F00F9344, $8708A3D2, $1E01F268, $6906C2FE,

$F762575D, $806567CB, $196C3671, $6E6B06E7,

$FED41B76, $89D32BE0, $10DA7A5A, $67DD4ACC,

$F9B9DF6F, $8EBEEFF9, $17B7BE43, $60B08ED5,

$D6D6A3E8, $A1D1937E, $38D8C2C4, $4FDFF252,

$D1BB67F1, $A6BC5767, $3FB506DD, $48B2364B,

$D80D2BDA, $AF0A1B4C, $36034AF6, $41047A60,

$DF60EFC3, $A867DF55, $316E8EEF, $4669BE79,

$CB61B38C, $BC66831A, $256FD2A0, $5268E236,

$CC0C7795, $BB0B4703, $220216B9, $5505262F,

$C5BA3BBE, $B2BD0B28, $2BB45A92, $5CB36A04,

$C2D7FFA7, $B5D0CF31, $2CD99E8B, $5BDEAE1D,

$9B64C2B0, $EC63F226, $756AA39C, $026D930A,

$9C0906A9, $EB0E363F, $72076785, $05005713,

$95BF4A82, $E2B87A14, $7BB12BAE, $0CB61B38,

$92D28E9B, $E5D5BE0D, $7CDCEFB7, $0BDBDF21,

$86D3D2D4, $F1D4E242, $68DDB3F8, $1FDA836E,

$81BE16CD, $F6B9265B, $6FB077E1, $18B74777,

$88085AE6, $FF0F6A70, $66063BCA, $11010B5C,

$8F659EFF, $F862AE69, $616BFFD3, $166CCF45,

$A00AE278, $D70DD2EE, $4E048354, $3903B3C2,

$A7672661, $D06016F7, $4969474D, $3E6E77DB,

$AED16A4A, $D9D65ADC, $40DF0B66, $37D83BF0,

$A9BCAE53, $DEBB9EC5, $47B2CF7F, $30B5FFE9,

$BDBDF21C, $CABAC28A, $53B39330, $24B4A3A6,

$BAD03605, $CDD70693, $54DE5729, $23D967BF,

$B3667A2E, $C4614AB8, $5D681B02, $2A6F2B94,

$B40BBE37, $C30C8EA1, $5A05DF1B, $2D02EF8D);

var

F: file;

BytesRead: DWORD;

Buffer: array[1..65521] of Byte;

i: Word;

begin

FileMode := 0;

result := $ffffffff;

{$I-}

AssignFile(F, FileName);

Reset(F, 1);

if IOResult = 0 then

begin

repeat

BlockRead(F, Buffer, SizeOf(Buffer), BytesRead);

for i := 1 to BytesRead do

result := (result shr 8) xor dwCRC32Table[Buffer[i] xor (result and $000000FF)];

until BytesRead = 0;

end;

CloseFile(F);

{$I+}

result := not result;

end;

 

function GetFileCRC32Hex(const Filename: String): String;

begin

result:= IntToHex(GetFileCRC32Int(Filename), 6);

end;

 

/////////////////////////////////////////////////////////////////////////////////

//Ïîëó÷àåì ðàçìåð ôàéëà ÷åðåç SearchRec //

/////////////////////////////////////////////////////////////////////////////////

function GetFileSize(const FileName: string): Longint;

var

SearchRec : TSearchRec;

begin

if FindFirst(ExpandFileName(FileName), faAnyFile, SearchRec) = 0 then

Result := SearchRec.Size

else Result := -1;

FindClose(SearchRec);

end;

 

function GetKByte(Byte: integer): string;

var

h : integer;

begin

h := byte div 1024;

if h = 0 then

Result := Format('%d áàéò', [Byte])

else

Result := Format('~%d ÊÁ', [h]);

end;

 

procedure SplitFile(FileName: TFileName; SizeofFiles: Integer; ProgressBar: TProgressBar);

var

i : Word;

fs, sStream : TFileStream;

SplitFileName : String;

begin

ProgressBar.Position := 0;

fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);

try

for i := 1 to Trunc(fs.Size / SizeofFiles) + 1 do

begin

Application.ProcessMessages;

SplitFileName := Format('%s.part%s', [FileName, FormatFloat('000', i)]);

sStream := TFileStream.Create(SplitFileName, fmCreate or fmShareExclusive);

try

if fs.Size - fs.Position < SizeofFiles then SizeofFiles := fs.Size - fs.Position;

sStream.CopyFrom(fs, SizeofFiles);

Application.ProcessMessages;

ProgressBar.Position := Round((fs.Position / fs.Size) * 100);

finally

sStream.Free;

end;

end;

finally

fs.Free;

end;

end;

procedure CombineFiles(FileName, CombinedFileName: TFileName);

var

i : integer;

fs, sStream : TFileStream;

begin

i := 1;

fs := TFileStream.Create(CombinedFileName, fmCreate or fmShareExclusive);

try

while FileExists(FileName) do

begin

Application.ProcessMessages;

sStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);

try

fs.CopyFrom(sStream, 0);

finally

sStream.Free;

end;

Inc(i);

Application.ProcessMessages;

FileName := ChangeFileExt(FileName, '.part'+FormatFloat('000', i));

end;

finally

fs.Free;

end;

end;

procedure SaveBat(FileName: TFileName; Text: String; AddInExistingFile: Boolean = True);

var

F: TextFile;

begin

AssignFile(F, FileName);

if (AddInExistingFile) and (FileExists(FileName)) then

begin

Append(F);

Writeln(F, Text);

Flush(F);

end else

begin

Rewrite(F);

Writeln(F, Text);

end;

CloseFile(F);

end;

function IsDigits(Str: String): boolean;

var

i : Integer;

begin

Result := True;

for i := 1 to Length(Str) do

if Str[i] in ['A'..'Z', 'a'..'z', 'À'..'ß', 'à'..'ÿ'] then

begin

Result := False;

Exit;

end;

end;

function GetPartList(MASKA: string): string;

var

SR : TSearchRec;

L : String;

begin

if FindFirst(MASKA, faAnyFile, SR) = 0 then

repeat

L := L + '"' + SR.Name + '"+';

until FindNext(SR) <> 0;

FindClose(SR);

L := Copy(L, 0, Length(L)-1);

RESULT := L;

end;

end.

 

 

 



<== предыдущая лекция | следующая лекция ==>
Разделение файла архиватором WinRAR на тома | Введение


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.111 сек.