Link to home
Start Free TrialLog in
Avatar of calebS
calebS

asked on

data types

I am wanting to parse a text file,

the text file will be parsed into smaller 'blocks' of text and passed into another class.

What would be the best method of passing these blocks of text.

I know a 'string' is too small, is there something like a 'memo' that can hold more text?

Thanks,
Cassandra.
ASKER CERTIFIED SOLUTION
Avatar of TooKoolKris
TooKoolKris

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of calebS
calebS

ASKER

the file will look as below, with multiple (about 23) 'type' section (the type section being everything I have include except the first 3 lines). I want to pass the entire 'type' section into a class.

type(0).initialise(textBlock1)
type(1).initialise(textBlock2)
...
type(22).initialise(textBlock23)

I really want to pass it as an entire block.

Is it possible to pass reference to the start and end positions within the textfile itself?



//my data file below.
STYLE "Harvard"
STYLE_VERSION "1"
SOFTWARE_VERSION "1.0"

TYPE "Book"
    ADD _Title            (0, "Title:", LABELLEFT, 320, LABELWIDTH_LG, TEXTLEFT, 260, TEXTWIDTH_LG, "", True)
    ADD _AUTHOR            (1, "Author/s:", LABELLEFT, 620, LABELWIDTH_LG, TEXTLEFT, 560, TEXTWIDTH_LG, "Seperate additional authors with a colon (;)", True)
    ADD _Publisher      (2, "Publisher:", LABELLEFT, 920, LABELWIDTH_LG, TEXTLEFT, 860, TEXTWIDTH_LG, "", True)
    ADD _Location      (3, ElectronicLocation, LABELLEFT, 1220, LABELWIDTH_LG, TEXTLEFT, 1160, TEXTWIDTH_LG, "", True)
    ADD _Year            (4, "Year Published:", LABELLEFT, 1520, LABELWIDTH_LG, TEXTLEFT, 1460, TEXTWIDTH_SM, "", True)
    ADD _Page            (5, "Page Number:", LABELLEFT, 1820, LABELWIDTH_LG, TEXTLEFT, 1760, TEXTWIDTH_SM, "", True)
    ADD _Volume            (6, "Volume:", LABELMIDLEFT, 1820, LABELWIDTH_SM, TEXTMIDLEFT, 1760, TEXTWIDTH_SM, "", True)
    ADD _Accessed      (7, "Accessed:", LABELLEFT, 2120, LABELWIDTH_LG, TEXTLEFT, 2060, TEXTWIDTH_MED, "", EnableIfElectronic)

+TranslatedWork
      If _Translator "(Translated by ~_Translator~.)"
      If _ForeignLanguage "(Translated from ~_ForeignLanguage~ .)"
      If _ForeignLanguage/_Translator "(Translated from ~_ForeignLanguage~ by ~_Translator~.)"

+LimitedCirc
      If _LimitedCirc "(Available from ~_LimitedCirc~)"

+Abstract
      If _Abstract "(Abstract)"

+Revised
      If _Revised "~_Revised~ edition."

+Chapter
      If _Chapter "~_Chapter~ in"

+AuthorType
      If _Editor "(Editor)."
      If _Editor(multiple) "(Editors)."

DEFAULT_FILTER
<f>_Author<n> +AuthorType (_Year). +Chapter<i> _Title.<n> +Abstract +Revised +TranslatedWork _Location:_Publisher +LimitedCirc

FILTERS
If _ForeignTitle
<f>_Author<n> +AuthorType (_Year). +Chapter<i> _ForeignTitle <n>[_Title]. +Abstract +Revised +TranslatedWork _Location:_Publisher +LimitedCirc


SOLUTION
Avatar of Mike Tomlinson
Mike Tomlinson
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of calebS

ASKER

thanks.

I actually didn't try.
I simply remember having major problems trying to use a large string some time ago.
Perhaps because I was using VBA in Word97.
I am sure it would only let me have 256 characters.

Thanks.
Hi,

Reference your sample data posted:
1. Is this what the whole file looks like?
2. Is each block seperated by a blank line?
3. If answer to (2) is no then how do you determine the start and end of a block?

If this is the case then I can help...

CD
Have you solved your problem yet?