Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2009, 18:09   #1
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию Чтение фалов как текстовых

Добрый день!
Как прочитать любой файл как текстовый?
Gerzs вне форума Ответить с цитированием
Старый 05.10.2009, 18:21   #2
[MoNAMur]
читер
Форумчанин
 
Аватар для [MoNAMur]
 
Регистрация: 05.10.2009
Сообщений: 150
По умолчанию

Код:
var a:textfile;
begin
assignfile(a,'xxx.xxx');
reset(a);

...

closefile(a);
end;
или я не так понял вопрос?
$me = $me == $me ? $me : $me;
[MoNAMur] вне форума Ответить с цитированием
Старый 05.10.2009, 18:54   #3
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Спасибо, я это хотел узнать.

Еще такой вопрос, можно ли загрузить в TextFile не весть файл, а первые 6 байт?
Gerzs вне форума Ответить с цитированием
Старый 05.10.2009, 21:02   #4
Ekzot1k
Пользователь
 
Аватар для Ekzot1k
 
Регистрация: 13.06.2009
Сообщений: 21
По умолчанию ...

Думаю тут проще всего просто почитать 6 байт в сиволах, и сделать цыкл до этого числа.
Ekzot1k вне форума Ответить с цитированием
Старый 05.10.2009, 21:14   #5
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

В TextFile ничего не загружается. Эта переменная содержит идентификатор файла. А загрузить первые сколько_угодно байт можно в переменную. Для загрузки первых 6 байт проще всего объявить переменную типа string[6] и читать с помощью процедуры read. Вопросы?
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 05.10.2009, 21:22   #6
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

program Project1;
var
f:textfile;
s,r:string;
i:integer;
begin
assign(f,'C:\input.txt');
reset(f);
read(f,s);
for i:=1 to 6 do
r:=r+s[i];
writeln(r);
readln(s);
end.
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 05.10.2009, 22:05   #7
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

r:=copy(r, 1, 6);
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 05.10.2009, 22:07   #8
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Спасибо всем.
Вот есть
Код:
var
  SearchRec: TSearchRec;
  myFile: TextFile;
  Text:String;
begin
if FindFirst('D:\Новая папка\*', faAnyFile, SearchRec) = 0 then
  begin
   repeat
    AssignFile(myFile, 'D:\Новая папка\'+ SearchRec.Name);
    Reset(myFile);
    ReadLn(myFile, Text);
    closefile(myFile);
    if Copy(text, 1, 3)='ID3' then
    begin


     with ListView1.Items.Add do
     begin
      Caption:=SearchRec.Name;
      SubItems.Add(IntToStr(SearchRec.Size));
     end;

     //CopyFile(PWideChar('C:\Documents and Settings\zaj\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache\'+ SearchRec.Name), PWideChar('D:\Новая папка\'+SearchRec.Name+'.mp3'), true);
    end;
   until FindNext(SearchRec) <> 0;
   FindClose(SearchRec);
   end;
end;
Прога компилируется, но при записке пишет: 'File access denied' и тыкает на строку Reset(myFile);
В чем проблема?
Gerzs вне форума Ответить с цитированием
Старый 05.10.2009, 22:24   #9
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Было бы неплохо написать в этом месте код, выводящий на экран SearchRec.Name. Наверняка FindFirst находит файл '.' или '..'. Не знаю что это, но это есть.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс

Последний раз редактировалось Олвин; 05.10.2009 в 22:26.
Олвин вне форума Ответить с цитированием
Старый 05.10.2009, 22:25   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в том, что вы как файл пытаетесь открыть папки (они же директории), а это недопустимо...

Код:
if (SearchRec.Attr and faDirectory)=0 then begin
// значит это файл, а не папка...
end;
и ещё. не с любым файлом получится прочитать первые 6 байт, если открывать его как TextFile
надо использовать или f : file; Reset(f,1); BlockRead(f, Buf, 6)
или TFileStream ...

Цитата:
А ещё лучше в if добавить условие, отфильтровывающее файлы с именами '.' и '..'!
Только что это такое я не знаю!
папка (директория) с именем '.' это специальный элемент файловой системы для ссылки на текущию папку.
папка (директория) с именем '..' это специальный элемент файловой системы для ссылки на вышестоящую папку...

Последний раз редактировалось Serge_Bliznykov; 05.10.2009 в 22:29.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить форматирование текстовых данных? Simone-si Microsoft Office Excel 5 17.09.2009 22:17
Сопоставление 2х фалов в exel Kaddy Microsoft Office Excel 1 26.03.2009 19:29
qip - передача фалов... Altera Софт 9 30.12.2008 18:23
как загрузить в ListBox несколько текстовых файлов? One.Love Общие вопросы Delphi 5 14.01.2008 11:54
Как посчитать сумму строк во всех текстовых файлах? qwestor PHP 8 30.12.2007 16:02