2012-04-02 6 views
0

Ich möchte wissen, ob das möglich ist.Odbc mit PHP, C#, preg_match ist dieser Code möglich

using System; 
using System.Data.Odbc;

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

//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(); } } }

}

Beispiel alarm_text string: Prio 1 TOM KRANENBURGSTRAAT 140 ENKHUIZEN Buitenbrand ENK646

So die Saiten an 2 Stellen

Antwort

0

Der Code gespeichert:

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]; 

Ist ähnlich dieser Code in 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; 

(Beachten Sie, dass der Code fehl: Code zeigt vier Einfanggruppen (PRETEXT Strasse-, postText und Stadt), aber Ihr Ausdruck hat nur drei ((.*\s), ([A-Z]+.[0-9]*) und (\s.[A-Z]*\s).)

In PHP gibt preg_match 1 zurück, wenn die Übereinstimmung erfolgreich ist und 0, wenn es fehlschlägt. Sie können m.Success abfragen, um den entsprechenden Wert zu erhalten (d. H. True, wenn die Übereinstimmung erfolgreich ist, und false, wenn sie fehlschlägt).

Der ursprüngliche Ausdruck ist case-sensitive (zB [A-Z] nicht Kleinbuchstaben entsprechen Wenn Sie die Suche wollen Groß- und Kleinschreibung sein, ändern Sie die Zeile:.

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

zu

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

thnx für Ihre Antwort.

ich werde erklären, was ich tue.

ich bin ein Feuerwehrmann, und ich arbeite auf einer Website. das zeigt unsere feuer/ems anrufe.

Prio 1 = Dringlichkeit

TOM KRANENBURGSTRAAT 140 = Straße (bei Alarmierungs eingefügt werden) (bei Adresse eingefügt werden)

ENKHUIZEN = Stadt (bei Adresse eingefügt werden)

Buitenbrand = Art von Nachricht (muss in data1 eingefügt)

ENK646 = Feuerwehrauto Nummer (muss in desc eingefügt)

es wird toll sein, diese in 5 Gruppen zu extrahieren. aber ich habe es in vier Gruppen arbeiten lassen. Straßennamen sind immer Großbuchstaben

das ist mein 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 ;