Odbc с php, c #, preg_match возможно ли этот код - PullRequest
0 голосов
/ 02 апреля 2012

Я хочу знать, возможно ли это.

using System;
using System.Data.Odbc;</p>

<p>namespace pdw_db
{
    class pdw_db
    {
        static void Main(string[] args)
        {
            if (args.Length <= 2)
            {
                return;
            }
            else
            {
                string alarm_capcode, alarm_text, alarm_korps;</p>

<code>            //kill qoutes in alarmering
            args[1] = args[1].Replace("\"", "");
            args[1] = args[1].Replace("\'", "");
            args[1] = args[1].Replace("'", "");
            args[2] = args[2].Replace("\"", "");
            args[2] = args[2].Replace("\'", "");
            args[2] = args[2].Replace("'", "");

            alarm_capcode = args[0];
            alarm_text = args[1];
            alarm_korps = args[2];

            // alles in de database graag.
            databaseThis(alarm_capcode, alarm_text, alarm_korps);

            string2 = alarm_text;
            preg_match('/(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)/', string2, matches);


            preText = matches[1];
            streetName = matches[2];
            postText = matches[4];
            city = matches[3];

            // alles in de database graag.
            databaseThis(streetName, city, preText, postText);
        }
        return;
    }

    static void databaseThis(string capcode, string melding, string korps)
    {
        string queryString = "insert into alarmeringen2012(capcode, melding, label)values(\'" + capcode + "\',\'" + melding + "\',\'" + korps + "\');";
        string queryString = "insert into jos_reports(address, summary, desc)values(\'" + streetName +"\',\'" + preText + "\',\'" + postText + "\');";

        using (OdbcConnection connection = new OdbcConnection("DSN=pdw_db"))
        {

            OdbcCommand command = new OdbcCommand(queryString, connection);
            connection.Open();
            OdbcDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {// do nothing
                Console.WriteLine(reader[0]);
            }
            // Call Close when done reading.

            reader.Close();
        }
    }
}
</code>

}

Пример строки alarm_text: Prio 1 TOM KRANENBURGSTRAAT 140 ENKHUIZEN Buitenbrand ENK646

Поэтому строки сохраняются в 2 местах

Ответы [ 2 ]

0 голосов
/ 02 апреля 2012

Спасибо за ваш ответ.

Я объясню, что я делаю.

Я пожарный, и я работаю над сайтом.это показывает наши вызовы fire / ems.

Prio 1 = срочность (необходимо указать в предупреждении)

TOM KRANENBURGSTRAAT 140 = улица (указать адрес)

ENKHUIZEN= город (должен быть вставлен в адрес)

Buitenbrand = вид сообщения (должен быть вставлен в data1)

ENK646 = номер пожарной машины (должен быть вставлен в desc)

будет здорово выделить их в 5 групп.но я получил работу в четырех группах.названия улиц всегда в верхнем регистре

это мой sql:

CREATE TABLE IF NOT EXISTS `brandweer_reports` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `data1` varchar(255) NOT NULL DEFAULT 'Won',
  `image` varchar(255) DEFAULT NULL,
  `address` text NOT NULL,
  `date1` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `date2` datetime DEFAULT '0000-00-00 00:00:00',
  `date3` datetime DEFAULT '0000-00-00 00:00:00',
  `summary` text,
  `boss` varchar(255) DEFAULT NULL,
  `people` varchar(11) NOT NULL DEFAULT '0',
  `department` int(11) NOT NULL DEFAULT '0',
  `desc` text,
  `published` tinyint(1) NOT NULL DEFAULT '1',
  `alerting` varchar(255) NOT NULL DEFAULT '0',
  `gmap_report_latitude` varchar(255) NOT NULL DEFAULT '0',
  `gmap_report_longitude` varchar(255) NOT NULL DEFAULT '0',
  `counter` int(11) NOT NULL DEFAULT '0',
  `gmap` tinyint(6) NOT NULL DEFAULT '1',
  `presse` varchar(255) NOT NULL,
  `presse2` varchar(255) NOT NULL,
  `presse3` varchar(255) NOT NULL,
  `updatename` varchar(255) NOT NULL DEFAULT 'admin',
  `updatedate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `boss2` varchar(255) NOT NULL,
  `einsatzticker` int(11) NOT NULL DEFAULT '0',
  `notrufticker` int(11) NOT NULL DEFAULT '0',
  `status` int(11) NOT NULL DEFAULT '0',
  `tickerKAT` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `date1` (`date1`),
  KEY `published` (`published`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
0 голосов
/ 02 апреля 2012

Код:

preg_match('/(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)/', string2, matches);
preText = matches[1];
streetName = matches[2];
postText = matches[4];
city = matches[3];

Аналогичен этому коду в C #:

// Note: include a reference to System.Text.RegularExpressions.

Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)");

string preText = m.Groups[1].Value;
string streetName = m.Groups[2].Value;
string postText = matches.Groups[4].Value;
string city = matches.Groups[3].Value;

(Обратите внимание, что код завершится ошибкой: ваш код показывает четыре группы захвата (preText, streetName, postText и city), но в вашем выражении есть только три ((.*\s), ([A-Z]+.[0-9]*) и (\s.[A-Z]*\s).)

В PHP preg_match вернет 1, если совпадение выполнено, и 0, если совпадениеэто не удается. Вы можете запросить m.Success, чтобы получить эквивалентное значение (т. е. true, если совпадение выполнено успешно, и false, если оно не выполнено).

Исходное выражение чувствительно к регистру (например, [A-Z] не будетсопоставлять строчные буквы. Если вы хотите, чтобы в поиске не учитывался регистр символов, измените строку:

Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)");

на

Match m = Regex.Match(string2, @"(.*\s)([A-Z]+.[0-9]*)(\s.[A-Z]*\s)", 
              RegexOptions.IgnoreCase);
...