Дайте ответ новичку: сохранение в Excel и подгрузка текста

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Svoja4ok
Сообщения: 27
Зарегистрирован: 18 окт 2006, 15:57

Передо мной сейчас стоит задача в написании программы. Мой первый большой проект, но для его написания мне нехватает некоторой инфы:
1) Во время работы программы, данные введённые пользователем будут сохраняться в массив, но по завершению программы необходимо этот массив сохранить в файл екзель. Как лучше всего реализовать это? Как настроить SaveDialog, чтоб можно было сохранять только в формате Екзель?
2) Во время работы программы, идёт большое количество вывода информации на экран. Забивать всё это в код- геморой. Цель и идея такая: на форме с помощью цикла будут сменяться строки из файла по очереди. соответсвенно номер строки в файле, выводимой на экран равен I. Как и спомощью чего это воплотить? Через Label или Memo?

Пожалуйста с примерами и поподробней, я в этом деле не очень давно...
Лелик_1044
Сообщения: 340
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

В filter пропиши *.xls
Но это файл будем иметь расширение, а сам бедет сохранен как обычный текстоввый файл

Наверное лучше через memo

var
F: TextFile;
S: string;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(F, OpenDialog1.FileName); { File selected in dialog }
Reset(F);
while not eof(f) do begin
Readln(F, S); { Read first line of file }
memo1.lines.add(S);
end;
CloseFile(F);
end;
end;
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

По поводу экспорта в Excel

http://www.kladovka.net.ru/index.cgi?pid=board&rid=363
Svoja4ok
Сообщения: 27
Зарегистрирован: 18 окт 2006, 15:57

Лелик, насколько я понял, во время программы ты сам сдесь выбираешь файл из которого берётся текст. Файл будет указан в коде сразу. Тогда получится:

var
F: TextFile;
i: string;

begin
AssignFile(F, C:\text.txt);
Reset(F);
for i:=1 to 30 do begin {допустим 30 строк в файле, в порядке в котором они должны быть отображены}
Readln(F, i); {чтение текущей строки}
memo1.lines.add(i);
end;
CloseFile(F);
end;
end;

Я правильно понял?

YurikGL, спасибо, посмотрю...
Лелик_1044
Сообщения: 340
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

нет ты не правильно сделал
В твоем прмиер будет в цикле крутится строка что уже ошибка

var F: TextFile;
S: string;

begin
AssignFile(F, 'C:\text.txt');
Reset(F);
while not eof(f) do begin
Readln(F, S);
memo1.lines.add(S);
end;
CloseFile(F);
end;

п.с помоему eof(f)-так пишется
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Аватара пользователя
LAngel
Сообщения: 277
Зарегистрирован: 30 мар 2005, 08:19
Откуда: Ульяновск
Контактная информация:

Хм... а зечем грузить текст в memo.lines с помощью TextFile ?
у него же есть метод загрузки из файла...

memo1.lines.LoadFromFile(Filename);
С уважением, Lost Angel...
Лелик_1044
Сообщения: 340
Зарегистрирован: 22 ноя 2004, 19:15
Откуда: Минск
Контактная информация:

Так я как понял там будет по циклу гонять
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Svoja4ok
Сообщения: 27
Зарегистрирован: 18 окт 2006, 15:57

нет, не по циклу.... просто в момент времени, мне необходимо отображать только одну строку из файла. после нажатия на кнопку, строка сменяется, а предидущая должна исчезнуть.... такое возможно?
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Svoja4ok,
на форме с помощью цикла будут сменяться строки из файла по очереди
ты первый сказал про цикл ;)
Если надо показывать только одну строку, заведи переменную, которая будет хранить номер этой строки. Прочитай файл в TStringList и листай себе кнопицами, выводя хоть в TLabel :)
Изображение
Svoja4ok
Сообщения: 27
Зарегистрирован: 18 окт 2006, 15:57

Игорь Акопян, спасибо огромное!
Ответить