Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.034 c
2-1129294767
d_savrasov
2005-10-14 16:59
2005.11.06
вопрос по quickrep


2-1129103833
Rykow
2005-10-12 11:57
2005.11.06
не могу прочитать вложение письма


1-1129193445
melbis
2005-10-13 12:50
2005.11.06
Оптимальное использование TreeView


2-1129369490
RzCoDer
2005-10-15 13:44
2005.11.06
Дин массивы


14-1129575930
NewWonder
2005-10-17 23:05
2005.11.06
Мастера web-дизайна!