Создание JS файла
Делаю программу, которая должна автоматически написать js файл, остановился на месте:
Например, надо написать:
Код:
document.write('привет');
в процедуре пишу:
Код:
Memo1.Lines.Add('document.write('привет');';
Понятное дело, что будет ошибка при запуске программы с кавычками, НО КАК мне записать вторые '' - кавычки???
Подмогите пожалуйста, срочно надо.
В ручную набирать более тысячи записей в таблицах
За ранее огромное спасибо
и ещё один момент, как сделать, чтобы текст из Stringgrida автоматически построчно записывался с этим кодом в memo???
Вообще то правильно не
Код:
Memo1.Lines.Add('document.write('привет');';
Код:
Memo1.Lines.Add('document.write('привет');');
И уж я не вижу ничего неправильного здесь
Код:
[LEFT]Memo1.Lines.Add('document.write(\'привет\');');
Цитата: Washington
Код:
Memo1.Lines.Add('document.write('привет');');
И уж я не вижу ничего неправильного здесь
Вот ругается и на такой код
Memo1.Lines.Add('document.write(''прівет'');');
Цитата: MuHAOS
Memo1.Lines.Add('document.write(''прівет'');');
а разве такой синтаксис прокатывает в java script (document.write(''прівет'');)???
вот в чём сложность то, так не прокатывает :cool:
Код:
var n, k:string;
begin
n:='document.write(';
k:=');';
Memo1.Lines.Add(n+char(ord(39))+'привет'+char(ord(39))+k);
end;
begin
n:='document.write(';
k:=');';
Memo1.Lines.Add(n+char(ord(39))+'привет'+char(ord(39))+k);
end;
и всё работает!!!
Спасибки.
И ещё один момент, как по поводу моего второго вопроса???
Как автоматически сделать js файл из текста, который в stringride находится???
Как автоматически сделать js файл из текста, который в stringride находится??? [/QUOTE]
Может быть стоит сохранить его в файл с раширением .js
Memo1.Lines.SaveToFile('test.js');
А если у меня не одна запись, а множество записей в stringride, как его составить автоматически (т.е. записать код в memo поле).вот в чём мой вопрос
Цитата: Cool Xacker
а разве такой синтаксис прокатывает в java script (document.write(''прівет'');)???
вот в чём сложность то, так не прокатывает :cool:
вот в чём сложность то, так не прокатывает :cool:
В Делфі две кавычки будут интерпретироваться как одна - это аналогично в C++ \'
Проверь если не веришь.
Код:
procedure SGridToHtml(SG: TStringgrid; Dest: TMemo; BorderSize: Integer);
var
i, p, x: integer;
SStyle1, SStyle2, Text, n, k, kw1, kw2: string;
begin
n:='document.write('; // переменная для автонаписания кода: document.write('
k:=');'; // переменная для закрытия написанного кода кавычкой и скобкой
Dest.Clear;
for i := 0 to SG.RowCount - 1 do
begin
Dest.Lines.Add(n+char(ord(39))+'<tr>'+char(ord(39))+k);
for p := 0 to SG.ColCount - 1 do
begin
SStyle1 := '';
SStyle2 := '';
if fsbold in SG.Font.Style then
begin
SStyle1 := SStyle1 + '<b>';
SStyle2 := SStyle2 + '</b>';
end;
if fsitalic in SG.Font.Style then
begin
SStyle1 := SStyle1 + '<i>';
SStyle2 := SStyle2 + '</i>';
end;
if fsunderline in SG.Font.Style then
begin
SStyle1 := SStyle1 + '<u>';
SStyle2 := SStyle2 + '</u>';
end;
Text := sg.Cells[p, i];
if Text = '' then Text := ' ';
Dest.Lines.Add(n+char(ord(39))+'<td class="tab">'+Text+'</td>'+char(ord(39))+k);
end;
Dest.Lines.Add(n+char(ord(39))+'</tr>'+char(ord(39))+k);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SGridToHtml(StringGrid1, Memo1, 1);
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName+'.js');
end;
var
i, p, x: integer;
SStyle1, SStyle2, Text, n, k, kw1, kw2: string;
begin
n:='document.write('; // переменная для автонаписания кода: document.write('
k:=');'; // переменная для закрытия написанного кода кавычкой и скобкой
Dest.Clear;
for i := 0 to SG.RowCount - 1 do
begin
Dest.Lines.Add(n+char(ord(39))+'<tr>'+char(ord(39))+k);
for p := 0 to SG.ColCount - 1 do
begin
SStyle1 := '';
SStyle2 := '';
if fsbold in SG.Font.Style then
begin
SStyle1 := SStyle1 + '<b>';
SStyle2 := SStyle2 + '</b>';
end;
if fsitalic in SG.Font.Style then
begin
SStyle1 := SStyle1 + '<i>';
SStyle2 := SStyle2 + '</i>';
end;
if fsunderline in SG.Font.Style then
begin
SStyle1 := SStyle1 + '<u>';
SStyle2 := SStyle2 + '</u>';
end;
Text := sg.Cells[p, i];
if Text = '' then Text := ' ';
Dest.Lines.Add(n+char(ord(39))+'<td class="tab">'+Text+'</td>'+char(ord(39))+k);
end;
Dest.Lines.Add(n+char(ord(39))+'</tr>'+char(ord(39))+k);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
SGridToHtml(StringGrid1, Memo1, 1);
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName+'.js');
end;
у меня всё прошло на УРА!!!
Вот видишь, без подсказок мозги сами работать начинают ;)
Всем спасибо за помощь :)