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

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

Чтение данных из внешнего файла [D6, WinXP]


Страницы:   1 2

Archont ©   (2002-06-26 22:47:00) 

Господа, проблема такого плана:
Я пишу браузер для CD с фотографиями, не было проблем, пока не пришла идея пояснить каждую фотографию, т. е. на форме есть поле мемо, предназаначенное для описания. Писать для каждой фотографии свой файл с описанием - по-моему глупо, хотелось бы использовать лишь один файл, если у кого есть опыт создания подобных алгоритмов, плз, поделитесь..
Заранее спасибо...


Archont   (2002-06-27 02:23:00) [1]

Большое спасибо за идеи, я использовал алгоритм Юрия, только пришлось его немного покроить и приделать проверку на окончание файла, а то уж очень сильно она ругалась. :))
Еще есть вопросик в теме по ПрогрессБару...


Viewer   (2002-06-27 00:48:00) [2]

Ну не сказал бы что этот сложнее.
Но память файл не отъедает.

function LoadStr(FileName: String; str: String): string;
var
infile: TextFile;
i: Integer;
begin
Result := "";
AssignFile(infile, FileName);
try
Reset(infile);
while not SeekEOF(infile) do
begin
readln(infile,Result);
if pos(str,Result) > 0 then break;
end;
i := pos(":",Result);
if i > 0 then Result := copy(Result, pos, Length(Result-pos-1));
finally
CloseFile(infile);
end;
end;


Юрий Зотов   (2002-06-27 00:11:00) [3]

> Поиск организовывать самому придеться,а также строку парсить.

Не-а, почти ничего не придется, практически все уже есть готовое.
Вот далеко не лучший, зато простейший пример.

var
i: integer;
...
with TStringList.Create do
try
LoadFromFile("...");
Memo1.Clear;
i := IndexOf("[имя_рисунка]");
if i >= 0 then
begin
Inc(i);
while Strings[i][1] <> "[" do
begin
Memo1.Lines.Add(Strings[i]);
Inc(i)
end
end
finally
Free
end;


Archont   (2002-06-27 00:01:00) [4]

sorry
сново = снова :)


Archont   (2002-06-26 23:56:00) [5]

Спасибо, может сново подниму вопрос, если не выйдет. :)


Viewer   (2002-06-26 23:53:00) [6]

Ну да или поиск вхождения имени файла в строку, но тут чего-то может случано совпасть


Viewer   (2002-06-26 23:52:00) [7]

Почти
3.Чтение строки.
4.Парсим по символу-разделителю
5.Сравнение с именем файла левой части
и печать правой, если совпало


Archont   (2002-06-26 23:47:00) [8]

Т.е. имеется в виду пошагово:
1. Открытие файла
2. Переменная = имя файла фото
3. Поиск конкретной строки
4. Чтение в переменную
5. Отсекание всего до знака ":"
ну а далее разберемся..
так?


Viewer   (2002-06-26 23:43:00) [9]

Тогда, действительно, текстовый файл.
Поиск организовывать самому придеться,а также строку парсить.


Archont   (2002-06-26 23:40:00) [10]

На самом деле 32 кила может оказаться мало, потому как файлов очень много...
Я сталкивался с программой напоминателем, где данные были записаны именно в этом формате (пример)

22/04/1981: Мой день рождения

------------


Viewer   (2002-06-26 23:37:00) [11]

Спорить не буду.
Автору виднее, что выбрать из предложенного, исходя из известных ему количесвенных ограничений.


Юрий Зотов   (2002-06-26 23:31:00) [12]

> Типизированный будет иметь принятое ограничение на размер записи

Ага. Например, самый обычный TextFile - никаких ограничений.


> ini-файл - свободный размер

Ага. Если не считать того, что сам INI-файл не может быть больще 32К. Маловато, пожалуй, окажется...


Viewer   (2002-06-26 23:31:00) [13]

Конечно можно и самому в собственный формат все уложить.
Только если есть готовые методы доступа, зачем велосипеж изобретать ?


Archont   (2002-06-26 23:29:00) [14]

To: alena.svt
Нет, не совсем точно поняла, я имел в виду, что 1 файл, в котором конкретно будут описания фото, а картинки, сами отдельными файлами...
идея с ini интересная, а если скажем будет файл *.dat формата:

<название файла> ; <описание>, тогда как, может я конечно изобретаю велосипед, но что поделаешь, хочется гибкости..


alena.svt   (2002-06-26 23:28:00) [15]

Да нет все можно у меня даже исходники были но вирус меня погрыз ничего не осталось. Файл был построен как в TheBat персональная книга. То есть фотографии, Email, и т.д
С уважением


Viewer   (2002-06-26 23:24:00) [16]

Не увидел я этого в его вопросе.
Понятно было, что файлы-картинки отдельно, а описание - один файл.
В противном случае, если хочется все в один файл - тогда может
и действительно в БД проще будет.
DBISAM вполне подойдет - не надо BDE и инсталляции - все в одном флаконе.


alena.svt   (2002-06-26 23:18:00) [17]

Он же хочет использовать всего один файл.
Я так поняла чтоб в нем и картинки были и описание к фотографиям.


Viewer   (2002-06-26 23:14:00) [18]

На диске храняться файлы-картинки
img_01.jpg
img_02.jpg
img_03.tiff

В ini-файл пишется секция
[img_01.jpg]
и ключ, например
rem=Таким я был молодым, а рядом Она.

и т.д.
Соответственно при выборке файла-картинки на просмотр из ini-файла
по секции и ключу вытягивается описание


alena.svt   (2002-06-26 23:09:00) [19]

Не поняла с Ini


Viewer   (2002-06-26 23:07:00) [20]

Типизированный будет иметь принятое ограничение на размер записи,
ini-файл - свободный размер


Страницы:   1 2

Наверх

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