Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2013, 01:35   #1
Jleksern
Форумчанин
 
Аватар для Jleksern
 
Регистрация: 14.10.2011
Сообщений: 137
По умолчанию перегнать значения из мэмо в эдит

Здравствуйте люди добрые.

Собственно, знаю что тут умные и продвинутые пользователи которые меня поймут, по этому собственно обращаюсь к Вам.

Хочу сделать небольшую программу, которая будет расставлять значения с memo в edit.
Как это выглядит...
К примеру у нас есть такой SQL запрос в мемо...
Код:
INSERT INTO `auto_chat` VALUES ('1', '', '31093', '-1', '-1', '0');
нужно при нажатии на кнопочку, перегнать все значения в edit...
в результате чтоб получилось примерно так в caption копомнента.
edit1 1
edit2
edit3 31093
edit4 -1
edit5 -1
edit6 0

Собственно пока это бы сделать... Скиньтесь исходником пожалуйста!!
Jleksern вне форума Ответить с цитированием
Старый 17.10.2013, 02:09   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

То есть эти значения надо выдрать из SQL-запроса? Тогда простым парсером. Пример:

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

const
  str = 'INSERT INTO `auto_chat` VALUES (''1'', '''', ''31093'', ''-1'', ''-1'', ''0'');';

procedure SQL_Parser(SQL: string; Params: TStringList);
var
  P: Integer;
begin
  Params.Clear;
  repeat
    P := Pos('''', SQL);
    if P > 0 then begin
      Delete(SQL, 1, P);
      P := Pos('''', SQL);
      if P > 0 then begin
        Params.Add(Copy(SQL, 1, P - 1));
        Delete(SQL, 1, P);
      end;
    end;
  until P = 0;
end;

var
  P: TStringList;
  i: Integer;

begin
  P := TStringList.Create;
  SQL_Parser(str, P);
  for i := 0 to P.Count - 1 do begin
    WriteLn(i, ' = ', P[i]);
  end;
  P.Free;
  ReadLn;
end.
Вгонять полученные значения в Edit'ы сделаете самостоятельно.
Arigato вне форума Ответить с цитированием
Старый 17.10.2013, 13:39   #3
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Для решения проблемы нужен ваш код. Но я вижу решение так:

1. Ищем значение VALUES.
2. Ищем первый знак '.
3. Перемещаемся дальше, считываем параметр в едит.
4. Ищем последний знак '.
5. Со следующей позиции повторяем пункты 2, 3 и 4 для следующего едита. И так далее.

Код, думаю, вы напишите сами, а мне просто лень. Если что-то получаться не будет, то спрашивайте отвечу.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net

Последний раз редактировалось cyberdev; 17.10.2013 в 13:53.
cyberdev вне форума Ответить с цитированием
Старый 17.10.2013, 13:55   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Так, абстрактно. Значения не обязательно в кавычках могут быть. Вывод - в парсинге опираться не только на кавычки, а на кавычки и запятые, ну и кто из них раньше
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.10.2013, 14:11   #5
cyberdev
Форумчанин
 
Аватар для cyberdev
 
Регистрация: 10.10.2013
Сообщений: 150
По умолчанию

Цитата:
Вывод - в парсинге опираться не только на кавычки, а на кавычки и запятые, ну и кто из них раньше
Так я и написал, ищем первую кавычку, параметр, затем вторую кавычку. По любому значения идут в порядке: ', параметр, '. Если на пути попадаются запятые, то просто игнорируем их. И потом, ТС написал строку вида: VALUES, 6 параметров, которые нужно считать в едиты. Конечно, если есть нюансы то их также нужно обработать.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net

Последний раз редактировалось cyberdev; 17.10.2013 в 14:25.
cyberdev вне форума Ответить с цитированием
Старый 17.10.2013, 23:39   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Значения не обязательно в кавычках могут быть.
Какой пример привели, под такой и сделали
Arigato вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегнать в delphi vladislav_m Помощь студентам 0 13.04.2011 13:45
перегнать код из Ruby в Паскаль или Делфи quarty Общие вопросы Delphi 0 19.02.2011 08:46
народ, спасай! нужно с паскаля в СИ 3.1 dos код перегнать al171717 Помощь студентам 0 13.05.2010 14:21
Как можно перегнать результат запроса в таблицу zzz007 Microsoft Office Access 3 15.08.2009 17:15
Перегнать данные из столбца в одну ячейку KROZORS Microsoft Office Access 2 17.06.2009 17:58