Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как считать данные из файла и выдать их в окно?


Автор: Tigris 27.7.2006, 21:10
Привет, всем!
Задача: Надо считать данные из существующего файла (к примеру, текстового) и отобразить их в окне.
Например: 
(a)cодержание текст.файла (см. так, как написано): 
P.S. [строка с пробелами] - это пустая строка и она присутствует в тексте.

[строка с пробелами]
Курс "Привет, тебе!"
[строка с пробелами]
1. Агафонов Иван            ГР-1123
2. Сидоренко Мария        ГР-1123
3. Носков Роман                          ГР-1123
4. Ручкина Яна            ГР-1123
[строка с пробелами]
5. Наумов Леонид            ГР-7895
6. Красавина Вера            ГР-7895
[строка с пробелами]
7. Пасквалина Ляля            ГР-9401
[строка с пробелами]

(б) вид окна д.б. таким:
 ________________________________________
|_______ФИО_______|_________Номер гр_____|
  Агафонов Иван             ГР-1123                     
  Сидоренко Мария         ГР-1123    и т.д.

Проблема состоит в том, как считать все данные из файла, минуя все пустые строки и пробелы, и отобразить их в окне. И,еще какой компонент надо использовать для отображения данных, к примеру, для ini подходит TValueListEditor, а в моем случае какое подойдет?  smile Пробовала использовать TlistView, но не поняла, как вставить данные из файла... smile 

Пожалуйста, помогите мне решить эту задачу. Было бы время, я бы постаралась разобраться, но это нужно срочно... smile 
Заранее благодарю. smile  

Автор: Romikgy 27.7.2006, 21:19
Имхо это в центр помощи 

Автор: Albinos_x 27.7.2006, 21:48
считываешь строки последовательно
удаляешь все пробелы в строке 
проверяешь строку, если пустая значит пропускаем
и т.д.

грузить можно в StringGrid... 

Автор: svarogik 27.7.2006, 21:58
Файл описать StringList -ом
Код

f:=Tstringlist.create();
f.loadfromfile('где');
f.strings[0];{первая строчка, другие меняй индексЪ
 

Автор: Tigris 27.7.2006, 22:11
Цитата(Albinos_x @ 27.7.2006,  21:48)
считываешь строки последовательно
удаляешь все пробелы в строке 
проверяешь строку, если пустая значит пропускаем
и т.д.

грузить можно в StringGrid...

Спасибо за отклик  smile 
Это я поняла, как должно работать...не знаю, как написать. Могли бы Вы показать примером? smile  Буду очень благодарна.

Добавлено @ 22:15 
Цитата(svarogik @ 27.7.2006,  21:58)
Файл описать StringList -ом
Код

f:=Tstringlist.create();
f.loadfromfile('где');
f.strings[0];{первая строчка, другие меняй индексЪ

Спасибо за отклик! smile
Индекс менять через for?
Но, в таком случае будут отображаться строки с пробелами. А, мне надо, чтобы было так: в поле "ФИО" заносилось "Агафонов Иван", а в "Номер гр" -  "ГР-1123" и т.д. 

Автор: Albinos_x 27.7.2006, 22:59
Цитата(Tigris @  27.7.2006,  22:11 Найти цитируемый пост)
Индекс менять через for?

да.. получить количество строк :
F.count
цикл до (F.count-1)

функция проверки на содержания слов 
Код

function IsNilString(s:String):boolean;
var i:word;
begin
Result:=false;
for i:=1 to Length(s) do
    if (s[i] in ['А'..'Я','а'..'я']) then Exit;
Result:=true;
end;

ф-я не будет работать со словами на латинице, цифрами и знаками препинания

Пример применения:
Код
..
if IsNilString(s[i]) then 
  {строка не содержит слов}
  else
  {строка содержит слова};
...

   

Автор: Tigris 28.7.2006, 22:09
Всем-всем большое спасибо за примеры и за помощь smile
Благодаря Вам разобралась с проблемой и не только  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)