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

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

Чтение из файла по байтно [Delphi, Windows]


Страницы:   1 2

KOLBoss ©   (2007-09-02 06:31:00) 

Доброе время Суток всем!
Добрые люди подсажите как провельно с помошью KOL считывать файлы по байтам.
Справку я читал вот и написал примерчик нерабочий

   F:= FileCreate(sFile, ofOpenRead);
   while FileEOF(F) and (i < 101) do
   begin
     FileSeek(F, 7, 0);
     FileRead(F, B, 2);
     s:= s + StringHex(B);
     inc(i);
   end;
   FileClose(F);

Зарание Большое спасибо.


KOLBoss   (2007-09-03 12:04:00) [1]

Спасибо работает!


Compiler   (2007-09-03 11:27:00) [2]


> Compiler ©   (03.09.07 11:25) [19]

Ошибочка вышла.
Rename и KOL нет.
Использовать MoveFile(...);


Compiler   (2007-09-03 11:25:00) [3]


> а как тогда переименовать файл?
RenameFile(Pchar('OldName'),Pchar('NewName'),True);


KOLBoss   (2007-09-03 09:38:00) [4]

В книшке написано
ChangeFileExt( fname, ext ) - изменяет расширение указанного файла.

а как тогда переименовать файл?


Vladimir Kladov   (2007-09-03 08:33:00) [5]

Это функция, возвращает строку 'C:\123.txt'. Вы ее просто не используете.


KOLBoss   (2007-09-03 07:46:00) [6]


procedure TForm1.Button1Click(Sender: PObj);
begin
ChangeFileExt('C:\123.xxx', '.txt')
end;

Почему неработает
версия KOL 2.69


KOLBoss   (2007-09-03 06:17:00) [7]

Большое спасиба всем (Осебенно "ANTPro"),
Заработала!


ANTPro   (2007-09-02 17:27:00) [8]

> [13] KOLBoos   (02.09.07 17:04)

Пойдет?
program Project1;

uses KOL;

var
 ST: PStream;
 FileID: array[0..3] of Char;

begin
 ST := NewReadFileStream('test.rar');
 ST.Position := 0;
 ST.Read(FileID, 4);
 if FileID='Rar!' then MsgOK('Это RAR');
 ST.Free;
end.


KOLBoos   (2007-09-02 17:04:00) [9]

http://www.kolnmck.ru/lessons/lessons11.shtml
там тоже рабрта с картинками
у меня снифилка на спутник настроена
много неизвестных файлов, понятно что вручную только парится м время тратить
вот и мне надо програмулинку для определения типа файла.


ANTPro   (2007-09-02 16:59:00) [10]

> [11] KOLBoss ©   (02.09.07 16:44)

http://www.kolnmck.ru/lessons/lessons11.shtml- сюда ходи :)
Кстати а что ты хочешь то? :)


KOLBoss   (2007-09-02 16:44:00) [11]

http://www.kolnmck.ru/lessons/lessons.shtml
зачем мне справочник на английском у меня уже есть на русском
наверно имелось ввиду http://www.kolnmck.ru/lessons/H_File.shtml
там нет FileCreate


homm   (2007-09-02 16:37:00) [12]

> Спасибо за  www.KOLNMCK.ru но там одни обновления


http://www.kolnmck.ru/lessons/lessons.shtml


KOLBoos   (2007-09-02 16:36:00) [13]


> Vladimir Kladov

Зачем такие замудрения на VCL всё просто работает через Stream кроме Reset по сети не работает (нехватает прав)
я ненавичёк в делфи долько в KOL навичок
неужеле нет нигде в инете примерчика (дайте линк пожалуйста).


KOLBoos   (2007-09-02 16:31:00) [14]

Спасибо за  www.KOLNMCK.ru но там одни обновления
наверно имелось ввиду http://kolmck.net/я там не нашёл примера для чтения из вайлов кроме битмепов

Stream:= NewReadFileStream(sFile);
SetLength(s, 100); //выделяем память
Stream.Read(s[1], 100);

пробывал неработает.


Vladimir Kladov   (2007-09-02 16:20:00) [15]

String это указатель на то место, где хранится строка. Вы пытаетесь затереть указатель и еще 100-4=96 байт памяти в стеке, убивая программу наповал. Сначала вам нужно прочитать книжку по Delphi и по Паскалю. В своей книжке Вирта, Семашко и других авторов переписывать я не намерен у меня книга по KOL.

Вам нужен 1 байт, читайте в Char или в Byte.

s := s + x; в цикле - это самое медленное, что можно придумать. Память выделять нужно заранее, или большими блоками, по 1 байту - процессор сгорит.


Дмитрий К   (2007-09-02 16:15:00) [16]

Stream:= NewReadFileStream(sFile);
SetLength(s, 100); //выделяем память
Stream.Read(s[1], 100);
...


ANTPro   (2007-09-02 16:15:00) [17]

> [3] KOLBoos   (02.09.07 15:12)

Кстати на www.KOLNMCK.ru есть куча статей :)


ANTPro   (2007-09-02 16:14:00) [18]

> [3] KOLBoos   (02.09.07 15:12)

Stream.ReadStr;


KOLBoos   (2007-09-02 15:12:00) [19]

Чего-то неполучается, почемуто в s:string; пусто
что там что здесь всеравно пусто.

   Stream:= NewReadFileStream(sFile);
   Stream.Read(s, 100);

Дайте примерчик
В книшке нет примеров в чём у меня и затруднения.


KOLBoos   (2007-09-02 12:53:00) [20]

Спасибо за совет, попрубую
а зачем тогда FileCreate
и небудет-ли медленно  если огромный файл, а мне нужен только заголовок
StringHex это моя функция


Страницы:   1 2

Наверх

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