Re: text parsing
- From: Carolyn Marenger <cajunk@xxxxxxxxxxxx>
- Date: Thu, 24 Jan 2008 05:51:21 -0500
McKirahan wrote:
"Carolyn Marenger" <cajunk@xxxxxxxxxxxx> wrote in message
news:5a282$4797516b$cf70133e$25433@xxxxxxxxxxxx
McKirahan wrote:the"Carolyn Marenger" <cajunk@xxxxxxxxxxxx> wrote in message
news:81d7b$47973b05$cf70133e$360@xxxxxxxxxxxx
McKirahan wrote:"Carolyn Marenger" <cajunk@xxxxxxxxxxxx> wrote in message
news:7c0f$4795ea54$cf70133e$1079@xxxxxxxxxxxx
McKirahan wrote:text"Carolyn Marenger" <cajunk@xxxxxxxxxxxx> wrote in message
news:74fb1$479501d1$cf70133e$7458@xxxxxxxxxxxx
Can someone point me in the direction of some good documentation onparsing?
I want to take a bunch of text files (rtf), read them in and dumphavethedatabase,contents in a database. The files are effectively a flat filewith I suspect some fairly intricate programming needed to processintodatafiles. Unfortunately, they are laid out for human readability, notA few answersconversion.A few questions.
How many is a "bunch"?
What would the target database be -- MySQL?
What table and column structures do you envision?
Perhaps simply a single table with two columns:
filename (key) and a memo field containing the data?
What is the purpose behind doing this?
A bunch is about a dozen. Basically one large file that was brokeneachsixteen subsets, following the initial letter for each record.
The target database would be MySQL
I haven't looked too closely at the data, but I think one main table
with a few linked tables for those cases where there may be more than
one piece of data for a category. There are about 25 categories to
therecord. Eventually there would be additional structure added around(Iimported data, but that isn't relevant to importing the data itself.towill confirm this before beginning to code.
The purpose: I am a D&D fan and I run games. I would like to be ablereference the material and automate much of the process so I don'toneYes, they are online. Yes, you can look at them. Yes, those are theto lug and reference 20lbs of books.Any chance the RTF files are online so I could look at them?
Perhaps http://www.wizards.com/default.asp?x=d20/article/srd35?
http://www.wizards.com/d20/files/v35/SRD.zip contains 88 RTF files.
Also, I gather, this might be a one-time effort; correct?
Not what you requested but ...
I've developed a VBScript solution that takes the following approach:
for a given folder, each RTF file is opened in MS-Word and saved
as a text file which is opened and read then saved in an MS-Access
database table containing 3 columns: id (AutoNumber), file, data.
Using those 86 RTF files it created a 10MB MS-Access database.
files except I only care about the 16 monster files. Yes, this is a
wererattime effort.
My goal is to create a encounter generation program - where I key in
climate, geography, season, encounter level, time of day, proximity to
civilization, and the application gives me a suggested random encounter
suited to the scenario. For example, if the party was wandering around
the city sewers on a hot summer night, they might encounter a pack of
giant rats being led by a were rat. I would then want the program to
determine how many rats, how many hit points each, and any other
pertinent variable data, including what weapons and treasure the
goodwas carrying and using.
Having the rtfs loaded into a database like your script does, would
enable faster searches, it would not go the next step and perform the
various calculations based on the results of the searches. It is a
There are a couple of the monster prefixed files that are not listingsstart, but if it has stripped any of the rtf encoding, it may make itI counted 17 "Monster" prefixed files.
harder to have a script find the various 'fields'.
Thanks, Carolyn
My version creates ".txt" files which do strip "the rtf encoding".
An alternative version creates ".htm" files which retains the
formatting you want; I don't think you really want all of the
"rtf encoding" unless you fully understand the specification:
(search on "rtf specification".)
Perhaps, as an intermediate step, you would like all of the
"Monster" rtfs converted to HTML and made available via
an interface to open one or more for viewing.
As HTML files they consume 7.5MB.
of monsters but other information, such as monsters as characters.
Anyway, exact number of files is not overly important.
I just did a little test, and looking at the files, I think the easiest
to work with may indeed be the text file.
Here is an example to illustrate: I am pulling the monster name, type
and hit dice from each file format.
in rtf...
{
\par }{\fs36
\par DELVER
\par }\trowd \trgaph108\trleft-108\trbrdrh\brdrs\brdrw10
\trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3
\clvertalt\clbrdrb\brdrs\brdrw10 \cltxlrtb\clftsWidth1
\cellx1969\clvertalt\clbrdrb\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth4871
\cellx6840\pard \ql \li0\ri0\nowidctlpar\intbl\faauto\rin0\lin0 {\b\fs20
}{\b\fs19 \cell }{\fs20 Huge Aberration}{\fs19 \cell }\pard \ql
\li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0
{\fs19 \trowd \trgaph108\trleft-108\trbrdrh
\brdrs\brdrw10
\trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3
\clvertalt\clbrdrb\brdrs\brdrw10 \cltxlrtb\clftsWidth1
\cellx1969\clvertalt\clbrdrb\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth4871 \cellx6840\row }\trowd
\trgaph108\trleft-108\trbrdrh\brdrs\brdrw10
\trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3
\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10
\cltxlrtb\clftsWidth1 \cellx1969\clvertalt\clbrdrt\brdrs\brdrw10
\clbrdrb\brdrs\brdrw10
\cltxlrtb\clftsWidth3\clwWidth4871 \cellx6840\pard \ql
\li0\ri0\nowidctlpar\intbl\faauto\rin0\lin0 {\b\fs20 Hit Dice:}{\b\fs19
\cell }{\fs20 15d8+78 (145 hp)}{\fs19 \cell }\pard \ql
----------
in .html...
<P STYLE="page-break-after: avoid"><FONT SIZE=5>DARKMANTLE</FONT></P>
<TABLE WIDTH=410 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=7
CELLSPACING=0 FRAME=VOID RULES=ROWS>
<COL WIDTH=124>
<COL WIDTH=258>
<TR VALIGN=TOP>
<TD WIDTH=124>
<P CLASS="western">
</P>
</TD>
<TD WIDTH=258>
<P CLASS="western"><FONT SIZE=2>Small Magical Beast</FONT></P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=124>
<P CLASS="western"><FONT SIZE=2><B>Hit Dice:</B></FONT></P>
</TD>
<TD WIDTH=258>
<P CLASS="western"><FONT SIZE=2>1d10+1 (6 hp)</FONT></P>
</TD>
</TR>
---------
in .txt...
DARKMANTLE
Small Magical Beast
Hit Dice:
1d10+1 (6 hp)
--------
So, looking at that and assuming the rest will be similar, the text
version looks the easiest to deal with. If document styling such as
'title', 'heading' and 'subheading' had been used, maybe not, but in
this case, a new line seems to denote either a field heading or field
data. There are exceptions of course - particularly when denoting a
category of monster.
That doies bring me a little closer to achievign my goal. Thanks for
the assistance. :)
Carolyn
So I gather you have what you need.
I'd suggest just manually converting the files (via MS-Word Save-As)
rather than automating that part of the process since it's a one-time
effort and there aren't that many files.
Below is a page that will list and allow selection of the "Monster"
files via a dropdown with the page displayed in an <iframe>. The
<select> is on the right to allow quicker access to the scroll bar.
Save it as "Monster.htm" and put it in the same folder as the
"Monster" files as Web pages; (i.e. with a ".htm" extension).
Doubleclick on the filename in Windows Explorer or create a
desktop shortcut to it for quicker access.
Watch for word-wrap.
<html>
<head>
<title>Monster.htm</title>
<script type="text/javascript">
function monster(that) {
var what = document.getElementById("id_select").value;
document.getElementById("id_picked").innerHTML = what;
document.getElementById("id_iframe").src = what;
}
</script>
<style type="text/css">
..font { font-family:Arial; font-size:8pt }
..zero { margin:0px; padding:0px }
</style>
</head>
<body class="zero">
<form action="" method="get" class="zero">
<table align="center" border="0" cellpadding="0" cellspacing="0"
width="100">
<tr valign="top">
<th>
<span id="id_picked" class="font"></span><br>
<iframe id="id_iframe" width="860" height="600"></iframe>
</th>
<td> </td>
<td class="font">
<b>Monster Files:</b><br>
<select class="font" size="19" id="id_select" onchange="monster(this)">
<option value="">
<option value="MonstersIntro-A.htm">Monsters Intro-A
<option value="MonstersB-C.htm">Monsters B-C
<option value="MonstersD-De.htm">Monsters D-De
<option value="MonstersDi-Do.htm">Monsters Di-Do
<option value="MonstersDr-Dw.htm">Monsters Dr-Dw
<option value="MonstersE-F.htm">Monsters E-F
<option value="MonstersG.htm">Monsters G
<option value="MonstersH-I.htm">Monsters H-I
<option value="MonstersK-L.htm">Monsters K-L
<option value="MonstersM-N.htm">Monsters M-N
<option value="MonstersO-R.htm">Monsters O-R
<option value="MonstersS.htm">Monsters S
<option value="MonstersT-Z.htm">Monsters T-Z
<option value=""> - - - - - - - - - - - - -
<option value="MonsterFeats.htm">Monster Feats
<option value="MonstersAnimals.htm">Monsters Animals
<option value="MonstersasRaces.htm">Monsters as Races
<option value="MonstersVermin.htm">Monsters Vermon
</select>
</td>
</tr>
</table>
</form>
</body>
</html>
I was going to do the conversion manually, with open office. Using word would cost too much, as I would have to go and purchase it. I do have a windows box to install it on - games and website testing, but other than that - linux and open office. The web page you just gave me works fine either way. Thanks!
Carolyn
.
- References:
- text parsing
- From: Carolyn Marenger
- Re: text parsing
- From: McKirahan
- Re: text parsing
- From: Carolyn Marenger
- Re: text parsing
- From: McKirahan
- Re: text parsing
- From: Carolyn Marenger
- Re: text parsing
- From: McKirahan
- Re: text parsing
- From: Carolyn Marenger
- Re: text parsing
- From: McKirahan
- text parsing
- Prev by Date: Re: The Way to Paradise
- Next by Date: Re: text parsing
- Previous by thread: Re: text parsing
- Next by thread: Re: text parsing
- Index(es):
Relevant Pages
|