123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #!/usr/bin/perl
- $db = "mob_db";
- $nb_columns = 57;
- @str_col = (1,2,3);
- $create_table = "#
- # Table structure for table `mob_db`
- #
- DROP TABLE IF EXISTS `mob_db`;
- CREATE TABLE `mob_db` (
- `ID` mediumint(9) unsigned NOT NULL default '0',
- `Sprite` text NOT NULL,
- `kName` text NOT NULL,
- `iName` text NOT NULL,
- `LV` tinyint(6) unsigned NOT NULL default '0',
- `HP` int(9) unsigned NOT NULL default '0',
- `SP` mediumint(9) unsigned NOT NULL default '0',
- `EXP` mediumint(9) unsigned NOT NULL default '0',
- `JEXP` mediumint(9) unsigned NOT NULL default '0',
- `Range1` tinyint(4) unsigned NOT NULL default '0',
- `ATK1` smallint(6) unsigned NOT NULL default '0',
- `ATK2` smallint(6) unsigned NOT NULL default '0',
- `DEF` smallint(6) unsigned NOT NULL default '0',
- `MDEF` smallint(6) unsigned NOT NULL default '0',
- `STR` smallint(6) unsigned NOT NULL default '0',
- `AGI` smallint(6) unsigned NOT NULL default '0',
- `VIT` smallint(6) unsigned NOT NULL default '0',
- `INT` smallint(6) unsigned NOT NULL default '0',
- `DEX` smallint(6) unsigned NOT NULL default '0',
- `LUK` smallint(6) unsigned NOT NULL default '0',
- `Range2` tinyint(4) unsigned NOT NULL default '0',
- `Range3` tinyint(4) unsigned NOT NULL default '0',
- `Scale` tinyint(4) unsigned NOT NULL default '0',
- `Race` tinyint(4) unsigned NOT NULL default '0',
- `Element` tinyint(4) unsigned NOT NULL default '0',
- `Mode` smallint(6) unsigned NOT NULL default '0',
- `Speed` smallint(6) unsigned NOT NULL default '0',
- `aDelay` smallint(6) unsigned NOT NULL default '0',
- `aMotion` smallint(6) unsigned NOT NULL default '0',
- `dMotion` smallint(6) unsigned NOT NULL default '0',
- `MEXP` mediumint(9) unsigned NOT NULL default '0',
- `MVP1id` smallint(9) unsigned NOT NULL default '0',
- `MVP1per` smallint(9) unsigned NOT NULL default '0',
- `MVP2id` smallint(9) unsigned NOT NULL default '0',
- `MVP2per` smallint(9) unsigned NOT NULL default '0',
- `MVP3id` smallint(9) unsigned NOT NULL default '0',
- `MVP3per` smallint(9) unsigned NOT NULL default '0',
- `Drop1id` smallint(9) unsigned NOT NULL default '0',
- `Drop1per` smallint(9) unsigned NOT NULL default '0',
- `Drop2id` smallint(9) unsigned NOT NULL default '0',
- `Drop2per` smallint(9) unsigned NOT NULL default '0',
- `Drop3id` smallint(9) unsigned NOT NULL default '0',
- `Drop3per` smallint(9) unsigned NOT NULL default '0',
- `Drop4id` smallint(9) unsigned NOT NULL default '0',
- `Drop4per` smallint(9) unsigned NOT NULL default '0',
- `Drop5id` smallint(9) unsigned NOT NULL default '0',
- `Drop5per` smallint(9) unsigned NOT NULL default '0',
- `Drop6id` smallint(9) unsigned NOT NULL default '0',
- `Drop6per` smallint(9) unsigned NOT NULL default '0',
- `Drop7id` smallint(9) unsigned NOT NULL default '0',
- `Drop7per` smallint(9) unsigned NOT NULL default '0',
- `Drop8id` smallint(9) unsigned NOT NULL default '0',
- `Drop8per` smallint(9) unsigned NOT NULL default '0',
- `Drop9id` smallint(9) unsigned NOT NULL default '0',
- `Drop9per` smallint(9) unsigned NOT NULL default '0',
- `DropCardid` smallint(9) unsigned NOT NULL default '0',
- `DropCardper` smallint(9) unsigned NOT NULL default '0',
- PRIMARY KEY (`ID`)
- ) ENGINE=MyISAM;
- ";
- printf("%s\n",$create_table);
- while ($ligne=<STDIN>)
- {
- if ($ligne =~ /[^\r\n]+/)
- {
- $ligne = $&;
- if ($ligne =~ /^\/\//)
- {
- printf("# ");
- $ligne = substr($ligne, 2);
- }
- @champ = split (",",$ligne);
- if ($#champ != $nb_columns - 1)
- {
- # Can't parse, it's a real comment
- printf ("%s\n", $ligne);
- } else {
- printf("REPLACE INTO `%s` VALUES (", $db);
- for ($i=0; $i<$#champ; $i++)
- {
- printField($champ[$i],",",$i);
- }
- printField($champ[$#champ],");\n",$#champ);
- }
- }
- }
- print("\n");
- sub printField {
- my ($str, $suffix, $idCol) = @_;
- # Remove first { and last }
- if ($str =~ /{.*}/)
- {
- $str = substr($&,1,-1);
- }
- # Remove comment at end of line
- if ($str =~ /[^\/]*\/\//)
- {
- $str = substr($&,0,-2);
- }
- # If nothing, put NULL
- if ($str eq "") {
- printf("NULL%s", $suffix);
- } else {
- my $flag = 0;
- # Search if it's a string column ?
- foreach $col (@str_col)
- {
- if ($col == $idCol)
- {
- $flag = 1;
- break;
- }
- }
- if ($flag == 1)
- {
- # String column, so escape and add ''
- printf("'%s'%s", escape($str), $suffix);
- } else {
- # Not a string column
- printf("%s%s", $str,$suffix);
- }
- }
- }
- sub escape {
- my ($str) = @_;
- my @str_splitted = split("'", $str);
- my $result = "";
- for (my $i=0; $i<=$#str_splitted; $i++)
- {
- if ($i == 0) {
- $result = @str_splitted[0];
- } else {
- $result = $result."\\'".@str_splitted[$i];
- }
- }
- return $result
- }
|