Удаление кавычек из запроса

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Удаление кавычек из запроса

Сообщение mrkaban » 10.01.2017 19:32:36

Здравствуйте, Уважаемые форумчане!

Подскажите пожалуйста, некоторые части StringList содержат ", и даже двое. Мне нужно удалить все кавычки, чтобы они не попали в переменную s. Я понимаю, что вместо MyList2.Strings[i] нужно вставить переменную типа String. Но что-то не могу сообразить, как это организовать.

Код: Выделить всё
    with MyList2.Create do
  try
    MyList2.StrictDelimiter := true;
    //пробую удалить кавычки
    UTF8Delete(MyList2.Strings[i], UTF8Pos('"',MyList2.Strings[i]),Length(MyList2.Strings[i]));
    //
    s := ''; // формируется sql запрос в БД
    for i := 0 to MyList2.Count - 1 do if Trim(MyList2.Strings[i]) <> '' then
      s := s + Format('%s(name LIKE "%s")', [IfThen(i = 0, '', ' OR '), MyList2.Strings[i]]);
    s := 'SELECT * FROM program WHERE ' + s + ' ORDER BY id';
  finally
    Free;
  end;


Заранее благодарен за любую помощь!
mrkaban
новенький
 
Сообщения: 49
Зарегистрирован: 28.05.2016 09:48:18

Re: Удаление кавычек из запроса

Сообщение olegy123 » 10.01.2017 19:36:53

Код: Выделить всё
MyList2.Text  := StringReplace(MyList2.Text, ' " ', ' ',
                          [rfReplaceAll, rfIgnoreCase]);
olegy123
энтузиаст
 
Сообщения: 645
Зарегистрирован: 25.02.2016 12:10:20

Re: Удаление кавычек из запроса

Сообщение mrkaban » 10.01.2017 20:17:10

Может я что-то неправильно сделал или не правильно понял? не удаляет :(

Код: Выделить всё
       with MyList2.Create do
  try
    MyList2.StrictDelimiter := true;
    //пробую удалить кавычки
MyList2.Text  := StringReplace(MyList2.Text, ' " ', ' ',
                          [rfReplaceAll, rfIgnoreCase]);
    //
    s := '';
    for i := 0 to MyList2.Count - 1 do if Trim(MyList2.Strings[i]) <> '' then
      s := s + Format('%s(name LIKE "%s")', [IfThen(i = 0, '', ' OR '), MyList2.Strings[i]]);
    s := 'SELECT * FROM program WHERE ' + s + ' ORDER BY id';
  finally
  //  Free;
  end;
mrkaban
новенький
 
Сообщения: 49
Зарегистрирован: 28.05.2016 09:48:18

Re: Удаление кавычек из запроса

Сообщение скалогрыз » 10.01.2017 20:28:53

пробелы то лишние вокруг двойных ковычек
Код: Выделить всё
MyList2.Text  := StringReplace(MyList2.Text, '"', ' ',
                          [rfReplaceAll, rfIgnoreCase]);


вообще, вместо того чтобы удалять, мне кажется ты хочешь их заменять.
т.е. заменять " на \" или как-то так... (зависит от синтаксиса языка)
скалогрыз
долгожитель
 
Сообщения: 1634
Зарегистрирован: 03.09.2008 02:36:48

Re: Удаление кавычек из запроса

Сообщение mrkaban » 10.01.2017 20:36:30

Точно! Я невнимательно посмотрел!

Спасибо большое! работает!

Добавлено спустя 21 час 38 минут 35 секунд:
Подскажите пожалуйста, а можно ли как нибудь сделать удаление всей части начиная с каких то букв, например, начиная с "ver".

Код: Выделить всё
UTF8Delete(FiltrStr,Pos('ver',FiltrStr),Length(FiltrStr));


Нельзя это сделать тоже при помощи StringReplace?
mrkaban
новенький
 
Сообщения: 49
Зарегистрирован: 28.05.2016 09:48:18


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 4

Рейтинг@Mail.ru