Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Загрузка файла в TStringList [D6]


Ольга ©   (2005-11-13 13:25:00) 

Задача такая: выстричь команду GO из файла со скриптами.
Загружаю файл в TStringList. При этом получаю StringList.Count = 1, хотя в файле строк много. На выходе получаю странную строку: 'яюi'
Не могу понять, где ошибка:

procedure LoadSQLFromFile(filename: string; Comm: TADOCommand);
var  SList: TStringList; i: integer;
begin
 Comm.CommandText:='';
 SList:= TStringList.Create;
 SList.LoadFromFile(filename);
 for i:=0 to SList.Count-1 do
 if Trim(SList.Strings[i])<>'GO' then
    Comm.CommandText:=Comm.CommandText+SList.Strings[i];
 SList.Free;
end;


Ольга   (2005-11-13 14:18:00) [1]

Да, именно в юникоде и был создан скрипт. Пересобрала скрипт в windows кодировке. Строки считались. И тут же наткнулась на ошибку при создании триггера. В общем, все о чем вы, sniknik, меня предупреждали и случилось.
Буду выполнять скрипт поблочно. Спасибо.


gdaujk   (2005-11-13 14:03:00) [2]

По-моему надо заменить у переменной SList тип на TStrings.


sniknik   (2005-11-13 13:57:00) [3]

p.s.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1129801845&n=1


string   (2005-11-13 13:54:00) [4]

Может быть в обрабатываемом файле нет одного из символов перевода строки ? (#13,#10)


sniknik   (2005-11-13 13:52:00) [5]

> На выходе получаю странную строку: 'яюi'
а не в юникоде ли открываемый файл? (пожоже на заголовок оного)
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1129763043&n=18

> Задача такая: выстричь команду GO из файла со скриптами.
не надо так делать. GO ставится (в основном) как завершение логического блока, и последующие команды должны выполнятся при гарантированном завершении предыдуших. не всегда, но убирание GO и выполнение скрипта единым блоком, может привести к глюкам.

лучше сделать разбиение и выполнение этих блоков по GO отдельно, последовательно, так же как делает QA (для которого скрипт с ними в принципе и предназначен)


Наверх

Титульная страница Поиск, карта сайта Написать письмо