Страница 1 из 2

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

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

Пожалуйста с примерами и поподробней, я в этом деле не очень давно...

Добавлено: 18 окт 2006, 18:50
Лелик_1044
В 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;

Добавлено: 18 окт 2006, 21:53
YurikGL
По поводу экспорта в Excel

http://www.kladovka.net.ru/index.cgi?pid=board&rid=363

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

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, спасибо, посмотрю...

Добавлено: 19 окт 2006, 16:58
Лелик_1044
нет ты не правильно сделал
В твоем прмиер будет в цикле крутится строка что уже ошибка

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)-так пишется

Добавлено: 20 окт 2006, 11:08
LAngel
Хм... а зечем грузить текст в memo.lines с помощью TextFile ?
у него же есть метод загрузки из файла...

memo1.lines.LoadFromFile(Filename);

Добавлено: 20 окт 2006, 12:13
Лелик_1044
Так я как понял там будет по циклу гонять

Добавлено: 20 окт 2006, 16:04
Svoja4ok
нет, не по циклу.... просто в момент времени, мне необходимо отображать только одну строку из файла. после нажатия на кнопку, строка сменяется, а предидущая должна исчезнуть.... такое возможно?

Добавлено: 22 окт 2006, 01:38
Игорь Акопян
Svoja4ok,
на форме с помощью цикла будут сменяться строки из файла по очереди
ты первый сказал про цикл ;)
Если надо показывать только одну строку, заведи переменную, которая будет хранить номер этой строки. Прочитай файл в TStringList и листай себе кнопицами, выводя хоть в TLabel :)

Добавлено: 25 окт 2006, 21:18
Svoja4ok
Игорь Акопян, спасибо огромное!