Главная страница
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.048 c
1-1128931719
TButton
2005-10-10 12:08
2005.11.06
Drawing (вопрос общего характера)


14-1129125684
Гость из прошлого
2005-10-12 18:01
2005.11.06
Помогите рассортировать языки програмирования


2-1129434980
DimaDima
2005-10-16 07:56
2005.11.06
Можно ли обращаться к массивам по индексам в их имени?


6-1122268035
joisy
2005-07-25 09:07
2005.11.06
Контроль и Сохранение Веб Страниц


3-1127461627
Маленький мук
2005-09-23 11:47
2005.11.06
Тригеры в MSSQL 2000