Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите плиз!!!


Part ©   (2003-01-20 13:39:00) 

Простите за назойливость и непонятливость :)
Хочу еще раз спросить, не могу прочитать файл не в текстовом режиме. Как не пробовал, а все время получаю текст. Что делать ?


Digitman   (2003-01-20 14:46:00) [1]

какие такие "стринги" ?
у тебя файл - не текстовый, так ?
вот ты его и читаешь блоками по SizeOf(buf) байт
затем каждый байт массива buf[] интерпретируешь просто как некое целое число и преобразуешь его в hex-представление


Part   (2003-01-20 14:39:00) [2]

Большое спасибо, Digitman, все работает. Но я все равно не понял почему inttohex , у меня вроде там стринги были ?


Digitman   (2003-01-20 14:28:00) [3]

точнее - так :

while not eof(FromF) do
begin
BlockRead(FromF, buf, SizeOf(buf), NumRead);
for i:= 0 to NumRead - 1 do
memo1.lines.add(IntToHex(buf[i], 2));
end;
end ;


Digitman   (2003-01-20 14:27:00) [4]

var

FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Byte;
buf1 :string[2] ;
i : integer;
j:integer;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); { Record size = 1 }

while not eof(FromF) do
begin
BlockRead(FromF, buf1, SizeOf(buf1), NumRead);
for i:= 0 to NumRead - 1 do
memo1.lines.add(IntToHex(buf1[i], 2));
end;
end ;
CloseFile(FromF);
end;
end;


Part   (2003-01-20 14:22:00) [5]

нигде не выскакивает, просто я получаю сиволы ,а их в hex формат не иогу перевести :( а файл вроде бы шестандцатиричный :(


Smithson   (2003-01-20 14:18:00) [6]

и чт не получается? Где ошибка выскакивает?


Part   (2003-01-20 14:15:00) [7]

var

FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
buf1 :string[2] ;
i : integer;
j:integer;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); { Record size = 1 }
i :=2;

repeat
begin
BlockRead(FromF, buf1, i, NumRead);
memo1.lines.add(buf1);
//j:=strtoint("buf1");
end;
until (NumRead = 0) ;
CloseFile(FromF);

end;
end;
вот так не получается


Digitman   (2003-01-20 14:06:00) [8]


> Как не пробовал, а все время получаю текст


А как, собственно, пробовал-то ? Где код ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо