Текущий архив: 2005.11.06;
Скачать: CL | DM;
ВнизКак считать файл и получить массив из байт Найти похожие ветки
← →
zodiak © (2005-10-11 15:48) [0]Есть Файл примерного содержания...
INTGl тя цяця
шяшяъяъя
тятяьяья
фяфяюяюя тятя
Со структурой файла более менее разобрался
Теперь задача моя получить файл аналогичного типа
Но с немного измененными данными ...
Как такое сделать ?
Т.е. Кодировка ASCII , ...
Код каждого символа я расшифровал ...
procedure TForm2.Button1Click(Sender: TObject);
var f,f1:file;
i,size:integer;
s,s1:string;
buf : array [1..258] of integer;
ch:char;
St:Tstrings;
begin
st:=nil;
If Opendialog1.Execute then
try
St:=TstringList.Create;
St.LoadFromFile(opendialog1.FileName); //Загрушаю файл
S:=St.Text; // сохраняю файл в строку
Memo1.Lines.Add(s);// - !!! Выводит не все символы , т.к. не видит конца строки
For i:=1 to (246+12) do //почему не 246 - не размер файла
begin
memo1.Lines.Add(inttostr(ord(s[i]))); // Выводит код каждого символа в файле
buf[i]:=ord(s[i]);
Memo2.Lines.Add(inttostr(ord(s1[i])));
end;
memo2.Clear;
St.clear;
St.text:=S;
St.Savetofile("1__Mat.mat");// - ПОЧЕМУ не сохраняет как исходный файл
{
for i:=1 to 258 do // 246 (Исходный размер файла)+12
Memo2.Lines.Add(inttostr(buf[i]));
St.SaveToFile("Lenokkk.mat");
except
Showmessage("Name fule invalid");
end;
if assigned(st) then St.Free;
end;
end.
Короче говоря как считать файл ПОБАЙТНО , получить массив из байт (этого файла).
И как ПОБАЙТНО сохранить , чтоб структура файла не поменялась ? ....
← →
Digitman © (2005-10-11 15:54) [1]это не текстовый файл.
← →
Ega23 © (2005-10-11 16:00) [2]
> St:=TstringList.Create;
С фига-ли TStringList??????
Грузи в TMemoryStram, а потом по-байтно пробуй оттуда читать...
← →
лысеющий (2005-10-11 16:00) [3]
procedure TForm1.Button1Click(Sender: TObject);
var
F: File;
ChrBuf: array of Char;
begin
AssignFile(F,"èìÿ_ôàéëà");
try
Reset(F,1);
try
SetLength(ChrBuf,FileSize(F));
BlockRead(F,ChrBuf[0],FileSize(F));
Memo1.Text := String(ChrBuf);
finally
ChrBuf := nil;
CloseFile(F);
end;
except
//error
end;
end;
P.S не проверял
← →
zodiak © (2005-10-11 17:11) [4]пока тоже не проверял ....
BlockRead(F,ChrBuf[0],FileSize(F));
^
Почему ноль ????
← →
Digitman © (2005-10-11 17:19) [5]
> Почему ноль ?
а почему бы НЕ ноль ?
← →
zodiak © (2005-10-11 17:26) [6]Ну тут я считываю всего-лишь первый байт ...
А весь файл зачитать массивом ???
меня 0 на интересю нас число ???...
← →
TUser © (2005-10-11 19:00) [7]> Почему ноль ????
Это первый элемент. Остальные в памяти располагаются пследовательно, а читать надо начиная с первого.
← →
cyborg © (2005-10-12 14:49) [8]
> [7] TUser © (11.10.05 19:00)
> а читать надо начиная с первого.
Ты хотел сказать с нулевого? :)
Страницы: 1 вся ветка
Текущий архив: 2005.11.06;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.044 c