![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пишу программу по перегонке данных... [D7]
Дениска © (2009-10-13 01:19:00)Всем привет! Пишу программу по перегонке данных из файла *.txt в файл *.xls. Проблема такая: при компиляции вылазит ошибка: «;» пропущено, но «.» найдено, на 32-й строке (procedure TForm1. …). Ошибка появилась после того, как я добавил строку 29. Смотрел много раз, вроде бы, с орфографией везде порядок…
Советы по проге тоже очень приветствуются…
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button3: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button3Click(Sender: TObject);
function CreateOleObject(const ClassName:string):IDispatch;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function CreateOleObject(const ClassName:string):IDispatch;
var f1{файл .txt}, f2{файл .xls}: file; {rчастота, sзатухание: array [1..2001] of real; mколичество строк: integer} exl,wb,sh: OleVariant;
procedure TForm1.Button3Click(Sender: TObject);
begin
if opendialog1.Execute then begin
assignfile(f1,opendialog1.FileName);
reset(f1);
{m:=число строк в файле-8;}
{for i=1 to m do}
{begin}
{r[i]:=текст строки i+7, знаки 1 - 18;}
{s[i]:=текст строки i+7, знаки 31 - 50;}
{end;}
closefile(f1);
end;
if savedialog1.Execute then begin
exl:=CreateOleObject(InputBox('OleStr','CreateOleObject','Excel.Application.8')) ;
try
wb:=exl.Workbooks.Add(savedialog1.FileName);
sh:=wb.WorkSheets[1];
finally
Exl := Unassigned;
WB := Unassigned;
Sh := Unassigned;
end;
assignfile(f2,savedialog1.FileName);
rewrite(f2);
{for i=1 to m do}
{begin}
{текст ячейки (строка i+1, столбец 1):=r[i];}
{текст ячейки (строка i+1, столбец 2):=s[i];}
{end;}
closefile(f2);
end;
end;
end.
Понимаю всю детскость и нубскость вопроса, но сейчас мне очень надо в этом разобраться... Если запостил не туда, извиняюсь. Заранее благодарен.
Anatoly Podgoretsky (2009-10-14 11:31:00) [1]
> А что должно быть между begin и end?
Обычно код программы, но может быть и ничего.
Я думаю, что с CreateOleObject ты ошибся или ты реально хочешь написать свою реализацию функции, ну так можешь посмотреть в исходника, что Борланд туда воткнул, я думаю что ничего кроме объявления.
Дениска (2009-10-14 08:29:00) [2]Спасибо, попробую применить! А что должно быть между begin и end?
У меня нету разделителей...
Lucia (2009-10-13 07:01:00) [3]А стоит ли писать программу?
Excel отлично понимает формат csv - тобишь формат с разделителями
McSimm (2009-10-13 01:51:00) [4]function CreateOleObject(const ClassName:string):IDispatch;
var ...: OleVariant;
procedure TForm1.Button3Click(Sender: TObject);
...
метод класса получился вложен в функцию.
компилятор не ждет точку в описании процедуры внутри функции.
Германн (2009-10-13 01:50:00) [5]Кстати. "Перегоняют" обычно либо нефть, либо ...
:)
Германн (2009-10-13 01:49:00) [6]А где begin..end; для function CreateOleObject(const ClassName:string):IDispatch;?