Форум: "KOL";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];
ВнизЧтение из файла по байтно Найти похожие ветки
← →
KOLBoss © (2007-09-02 06:31) [0]Доброе время Суток всем!
Добрые люди подсажите как провельно с помошью 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);
Зарание Большое спасибо.
← →
=BuckLr= (2007-09-02 11:54) [1]Почему бы не использовать PSTream?
И ещё - разве в KOL есть StringHex?
← →
KOLBoos (2007-09-02 12:53) [2]Спасибо за совет, попрубую
а зачем тогда FileCreate
и небудет-ли медленно если огромный файл, а мне нужен только заголовок
StringHex это моя функция
← →
KOLBoos (2007-09-02 15:12) [3]Чего-то неполучается, почемуто в s:string; пусто
что там что здесь всеравно пусто.
Stream:= NewReadFileStream(sFile);
Stream.Read(s, 100);
Дайте примерчик
В книшке нет примеров в чём у меня и затруднения.
← →
ANTPro © (2007-09-02 16:14) [4]> [3] KOLBoos (02.09.07 15:12)
Stream.ReadStr;
← →
ANTPro © (2007-09-02 16:15) [5]> [3] KOLBoos (02.09.07 15:12)
Кстати на www.KOLNMCK.ru есть куча статей :)
← →
Дмитрий К © (2007-09-02 16:15) [6]
Stream:= NewReadFileStream(sFile);
SetLength(s, 100); //выделяем память
Stream.Read(s[1], 100);
...
← →
Vladimir Kladov (2007-09-02 16:20) [7]String это указатель на то место, где хранится строка. Вы пытаетесь затереть указатель и еще 100-4=96 байт памяти в стеке, убивая программу наповал. Сначала вам нужно прочитать книжку по Delphi и по Паскалю. В своей книжке Вирта, Семашко и других авторов переписывать я не намерен у меня книга по KOL.
Вам нужен 1 байт, читайте в Char или в Byte.
s := s + x; в цикле - это самое медленное, что можно придумать. Память выделять нужно заранее, или большими блоками, по 1 байту - процессор сгорит.
← →
KOLBoos (2007-09-02 16:31) [8]Спасибо за www.KOLNMCK.ru но там одни обновления
наверно имелось ввиду http://kolmck.net/ я там не нашёл примера для чтения из вайлов кроме битмепов
Stream:= NewReadFileStream(sFile);
SetLength(s, 100); //выделяем память
Stream.Read(s[1], 100);
пробывал неработает.
← →
KOLBoos (2007-09-02 16:36) [9]
> Vladimir Kladov
Зачем такие замудрения на VCL всё просто работает через Stream кроме Reset по сети не работает (нехватает прав)
я ненавичёк в делфи долько в KOL навичок
неужеле нет нигде в инете примерчика (дайте линк пожалуйста).
← →
homm © (2007-09-02 16:37) [10]> Спасибо за www.KOLNMCK.ru но там одни обновления
http://www.kolnmck.ru/lessons/lessons.shtml
← →
KOLBoss © (2007-09-02 16:44) [11]http://www.kolnmck.ru/lessons/lessons.shtml
зачем мне справочник на английском у меня уже есть на русском
наверно имелось ввиду http://www.kolnmck.ru/lessons/H_File.shtml
там нет FileCreate
← →
ANTPro © (2007-09-02 16:59) [12]> [11] KOLBoss © (02.09.07 16:44)
http://www.kolnmck.ru/lessons/lessons11.shtml - сюда ходи :)
Кстати а что ты хочешь то? :)
← →
KOLBoos (2007-09-02 17:04) [13]http://www.kolnmck.ru/lessons/lessons11.shtml
там тоже рабрта с картинками
у меня снифилка на спутник настроена
много неизвестных файлов, понятно что вручную только парится м время тратить
вот и мне надо програмулинку для определения типа файла.
← →
ANTPro © (2007-09-02 17:27) [14]> [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.
← →
KOLBoss © (2007-09-03 06:17) [15]Большое спасиба всем (Осебенно "ANTPro"),
Заработала!
← →
KOLBoss © (2007-09-03 07:46) [16]
procedure TForm1.Button1Click(Sender: PObj);
begin
ChangeFileExt("C:\123.xxx", ".txt")
end;
Почему неработает
версия KOL 2.69
← →
Vladimir Kladov (2007-09-03 08:33) [17]Это функция, возвращает строку "C:\123.txt". Вы ее просто не используете.
← →
KOLBoss © (2007-09-03 09:38) [18]В книшке написано
ChangeFileExt( fname, ext ) - изменяет расширение указанного файла.
а как тогда переименовать файл?
← →
Compiler © (2007-09-03 11:25) [19]
> а как тогда переименовать файл?RenameFile(Pchar("OldName"),Pchar("NewName"),True);
← →
Compiler © (2007-09-03 11:27) [20]
> Compiler © (03.09.07 11:25) [19]
Ошибочка вышла.
Rename и KOL нет.
Использовать MoveFile(...);
← →
KOLBoss © (2007-09-03 12:04) [21]Спасибо работает!
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2008.05.11;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c