Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1208168688
Новичек
2008-04-14 14:24
2008.05.11
Помогите с запросом к Paradox


4-1188800115
ter
2007-09-03 10:15
2008.05.11
получение текстового представления из виртуального кода клавиши


2-1207746625
FoxikM
2008-04-09 17:10
2008.05.11
Как закрыть порт на время.


2-1208010960
assassin8899
2008-04-12 18:36
2008.05.11
Как осуществить поиск записи в DBGrid


15-1206194716
@!!ex
2008-03-22 17:05
2008.05.11
Надежность JAVA-приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский