Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Здесь есть возможность читать онлайн «Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Советы по Delphi. Версия 1.4.3 от 1.1.2001»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Советы по Delphi. Версия 1.4.3 от 1.1.2001», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

TimeStamp := FileAge(FileName); { get source's time stamp }

GetMem(CopyBuffer, ChunkSize); { allocate the buffer }

try

Source := FileOpen(FileName, fmShareDenyWrite); { open source file }

ifSource < 0 then raiseEFOpenError.Create(FmtLoadStr(SFOpenError, [FileName]));

try

Dest := FileCreate(Destination); { create output file; overwrite existing }

ifDest < 0 then raiseEFCreateError.Create(FmtLoadStr(SFCreateError, [Destination]));

try

repeat

BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }

ifBytesCopied > 0 then{ if we read anything... }

FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }

untilBytesCopied < ChunkSize; { until we run out of chunks }

finally

FileClose(Dest); { close the destination file }

{ SetFileTimeStamp(Destination, TimeStamp);} { clone source's time stamp }{!!!}

end;

finally

FileClose(Source); { close the source file }

end;

finally

FreeMem(CopyBuffer, ChunkSize); { free the buffer }

end;

FileSetDate(Dest,FileGetDate(Source));

end;

Хм. IMHO крутовато будет такие функции писать, когда в большинстве случаев достаточно что-нубудь типа нижеприводимого, причем оно даже гибче, так как позволяет скопировать как весь файл пpи From и Count = 0, так и произвольный его кусок.

functionCopyFile(InFile, OutFile: String; From, Count: Longint): Longint;

varInFS, OutFS: TFileStream;

begin

InFS := TFileStream.Create(InFile, fmOpenRead);

OutFS := TFileStream.Create(OutFile, fmCreate);

InFS.Seek(From, soFromBeginning);

Result := OutFS.CopyFrom(InFS, Count);

InFS.Free;

OutFS.Free;

end;

try..except расставляются по вкусу, а навороты вроде установки атрибутов, даты и времени файла и т.п. для ясности удалены, да и не нужны они в основном никогда.

Конечно, под Win32 имеет смысл использовать функции CopyFile, SHFileOperation.

Как получить имя папки pабочего стола (не чеpез registry)?

Nomadicсоветует:

Просто очень хочется поработать с shell functions.

В этом примере делается и это -

procedureTForm1.Button1Click(Sender: TObject);

proceduremadd(s: string);

begin

memo1.lines.add(s);

end;

VAR

ppmalloc:imalloc;

id:ishellfolder;

pi:pitemidlist;

lpname:tstrret;

begin

ifsucceeded(shgetspecialfolderlocation(0, CSIDL_PROGRAMS, pi)) thenbegin

madd('Succeeded programs location');

ifsucceeded(shgetdesktopfolder(id)) then begin

madd('Succeeded get desktop folder');

ifsucceeded(id.getdisplaynameof(pi, 0, lpname)) then begin

madd('Succeeded get display name');

iflpname.uType=2 then begin

madd(lpname.cstr);

end;

end elsemadd('UnSucceeded get display name');

end elsemadd('UnSucceeded get desktop folder');

end elsemadd('UNSucceeded programs location');

end;

Количество строк в текстовом файле

Если файлы не слишком велики, вы можете сделать так:

List := TStringList.Create;

try

List.LoadFromFile('C:\FILE.TXT');

Gauge.MaxValue := List.Count;

finally

List.Free;

end;

Мы читаем в память весь текст, и кроме подсчета строк этот код ничего не делает. Другая идея заключается в использовании не счетчика строк, а счетчика байт. В самом начале вы запрашиваете размер файла (используя функцию Delphi FileSize), и в цикле проходите все байты, как вы делали это со строками. Цикл может выглядеть примерно так (предположим, вы используете стандартный паскалевский тип TEXT):

Gauge.MaxValue := FileSize(TextFile);

Reset(TextFile);

while noteof(TextFile) do begin

Readln(TextFile, Line);

{ Обработка строки }

withGauge do begin

Progress := Progress + Length(Line) + 2; { 2 для CR/LF }

Refresh;

end;

end;

Копирование файлов IV

Igor Nikolaev aKa The Spriteсоветует:

Copyfile('C:\1.txt', 'C:\files\2.txt', 0);

где первый параметр – путь и имя нужного файла, а второй путь и имя нового(скопированого) файла

Если же необходимо задавать имена файлов через Edit, то:

Copyfile(PChar(edit1.text), PChar(edit2.text), 0);

Сеть

Как узнать доступные сетевые pесуpсы?

Nomadicсоветует:

Вот пример:

type

PNetResourceArray = ^TNetResourceArray;

TNetResourceArray = array[0..MaxInt divSizeOf(TNetResource) - 1] ofTNetResource;

ProcedureEnumResources(LpNR:PNetResource);

Var

NetHandle: THandle;

BufSize: Integer;

Size: Integer;

NetResources: PNetResourceArray;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Представляем Вашему вниманию похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

Обсуждение, отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x