Дайте ответ новичку: сохранение в Excel и подгрузка текста
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Передо мной сейчас стоит задача в написании программы. Мой первый большой проект, но для его написания мне нехватает некоторой инфы:
1) Во время работы программы, данные введённые пользователем будут сохраняться в массив, но по завершению программы необходимо этот массив сохранить в файл екзель. Как лучше всего реализовать это? Как настроить SaveDialog, чтоб можно было сохранять только в формате Екзель?
2) Во время работы программы, идёт большое количество вывода информации на экран. Забивать всё это в код- геморой. Цель и идея такая: на форме с помощью цикла будут сменяться строки из файла по очереди. соответсвенно номер строки в файле, выводимой на экран равен I. Как и спомощью чего это воплотить? Через Label или Memo?
Пожалуйста с примерами и поподробней, я в этом деле не очень давно...
1) Во время работы программы, данные введённые пользователем будут сохраняться в массив, но по завершению программы необходимо этот массив сохранить в файл екзель. Как лучше всего реализовать это? Как настроить SaveDialog, чтоб можно было сохранять только в формате Екзель?
2) Во время работы программы, идёт большое количество вывода информации на экран. Забивать всё это в код- геморой. Цель и идея такая: на форме с помощью цикла будут сменяться строки из файла по очереди. соответсвенно номер строки в файле, выводимой на экран равен I. Как и спомощью чего это воплотить? Через Label или Memo?
Пожалуйста с примерами и поподробней, я в этом деле не очень давно...
-
- Сообщения: 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;
Но это файл будем иметь расширение, а сам бедет сохранен как обычный текстоввый файл
Наверное лучше через 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;
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Лелик, насколько я понял, во время программы ты сам сдесь выбираешь файл из которого берётся текст. Файл будет указан в коде сразу. Тогда получится:
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, спасибо, посмотрю...
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, спасибо, посмотрю...
-
- Сообщения: 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)-так пишется
В твоем прмиер будет в цикле крутится строка что уже ошибка
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)-так пишется
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Хм... а зечем грузить текст в memo.lines с помощью TextFile ?
у него же есть метод загрузки из файла...
memo1.lines.LoadFromFile(Filename);
у него же есть метод загрузки из файла...
memo1.lines.LoadFromFile(Filename);
С уважением, Lost Angel...
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Так я как понял там будет по циклу гонять
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
нет, не по циклу.... просто в момент времени, мне необходимо отображать только одну строку из файла. после нажатия на кнопку, строка сменяется, а предидущая должна исчезнуть.... такое возможно?
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Svoja4ok,

Если надо показывать только одну строку, заведи переменную, которая будет хранить номер этой строки. Прочитай файл в TStringList и листай себе кнопицами, выводя хоть в TLabel
ты первый сказал про циклна форме с помощью цикла будут сменяться строки из файла по очереди

Если надо показывать только одну строку, заведи переменную, которая будет хранить номер этой строки. Прочитай файл в TStringList и листай себе кнопицами, выводя хоть в TLabel


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