|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как побайтно считать файл)
Ув. форумчане!!
Скажите пжл как побайтно считать файл и записать его в другой (два .exe файла). Буду очень благодарен... Я не поэт, но я скажу стихами: "Пошли вы нах*(пииии)уй мелкими шажками" Люди эт я шучу... |
#2
|
|||
|
|||
BlockRead, BlockWrite в помощь в инете примеров куча, да и думаю на форуме не меньше можно найти, да и в справке самого Delphi не ленитесь
взялся из неоткуда, ничего не прошу, помогаю просто так ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя |
#3
|
|||
|
|||
Спасибо))
Код:
procedure BlockRead ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsRead : Integer} ) ; var myFile : File; byteArray : array[1..8] of byte; oneByte : byte; i, count : Integer; begin // Попытка открыть файл Test.byt для записи AssignFile(myFile, 'Test.byt'); ReWrite(myFile, 4); // Определение отдельной 'записи' как 4 байта // Заполнение массив данными for i := 1 to 8 do byteArray[i] := i; // Запись данных массива в файл BlockWrite(myFile, byteArray, 2); // Запись 2 'записи' из 4 байт //Закрытие файла CloseFile(myFile); // Повторное открытие файла для чтения FileMode := fmOpenRead; Reset(myFile, 1); // Теперь мы определяем одну запись как 1 байт // Показ содержимого файла // Чтение первых 6 байт. 'count' установлен в // текущий считанный номер ShowMessage('Чтение первого набора байтов :'); BlockRead(myFile, byteArray, 6, count); // Показ счтанных значений байта for i := 1 to count do ShowMessage(IntToStr(byteArray[i])); // Теперь читаем один байт за один раз и так до конца файла ShowMessage('Чтение остающихся байтов :'); while not Eof(myFile) do begin BlockRead(myFile, oneByte, 1); // Чтение одного байта за один раз ShowMessage(IntToStr(oneByte)); end; // Закрытие файла в последний раз CloseFile(myFile); end; Код:
procedure BlockWrite ( var FileHandle : File; var Buffer; RecordCount : Integer {; var RecordsWritten : Integer} ) ; var myFile : File; byteArray : array[1..8] of byte; oneByte : byte; i, count : Integer; begin // Попытка открыть файл Test.byt для записи AssignFile(myFile, 'Test.byt'); ReWrite(myFile, 4); // Определение отдельной 'записи' как 4 байта // Заполнение массив данными for i := 1 to 8 do byteArray[i] := i; // Запись данных массива в файл BlockWrite(myFile, byteArray, 2); // Запись 2 'записи' из 4 байт // Заполнение массива данных с различными данными for i := 1 to 4 do byteArray[i] := i*i; // Значение : 1, 4, 9, 16 // Запись только первых 4 элементов из массива данных в файл BlockWrite(myFile, byteArray, 1); // Запись 1 записи из 4 байт // Закрытие файла CloseFile(myFile); // Повторное открытие файла для чтения FileMode := fmOpenRead; Reset(myFile, 1); // Теперь мы определяем одну запись как 1 байт // Показ содержимого файла // Чтение первых 6 байт.'count' установлен в // текущий считанный номер ShowMessage('Чтение первого набора байтов :'); BlockRead(myFile, byteArray, 6, count); // Показ считанных значений байта for i := 1 to count do ShowMessage(IntToStr(byteArray[i])); // Now read one byte at a time to the end of the file ShowMessage('Чтение остающихся байтов :'); while not Eof(myFile) do begin BlockRead(myFile, oneByte, 1); // Чтение одного байта за один раз ShowMessage(IntToStr(oneByte)); end; // Закрытие файла в последний раз CloseFile(myFile); end; Только эти примеры с файлами .byt Я не поэт, но я скажу стихами: "Пошли вы нах*(пииии)уй мелкими шажками" Люди эт я шучу... Последний раз редактировалось link993, 02.06.2011 в 11:52. |
#4
|
||||
|
||||
Если по байтно то можно так:
Код:
Var F, G: File of Byte; B: Byte; begin AssignFile(F, 'C:\in.exe'); AssignFile(G, 'C:\out.exe'); Reset(F); Rewrite(G); While Not Eof(F) Do begin Read(F, B); Write(G, B); end; CloseFile(F); CloseFile(G); end; If end Then begin; |
#5
|
|||
|
|||
Цитата:
Нужно указывать, что размер каждой записи будет 1 байт. Иначе программа будет считывать по 128 байт за раз(по умолчанию). |
#6
|
||||
|
||||
Цитата:
Цитата:
Пишу программы за еду. __________________ |