>Anthony Akens wrote:
>> Hi all,
>> I'm doing a text replace in a binary file, which works fine as long as the
>> text I replace it with is the exact same length.  If the text I put in is longer or
>> shorter, the program that reads the file (not one I wrote) chokes and spews
>> out a bunch of garbage.  Is there a way in perl to deal with that?

>Not really, unless the program you didn't write is in Perl.
Nope.  Probably C.

>> This is for a config file, so what I'm doing is having the user select which
>> generic config template to use, and inputting their "id" and it generates a
>> config file with their ID in it.
>
>> The string I'm inputting is always going to be 5, 6, or 7 characters long.  The
>> only work around I've found for this is to make a config file each with a default
>> string of the appropriate length.  The problem is that I'm ending up needing
>> three times as many config files as it seems I need to.

>That sounds about right. I guess you're lucky there isn't a checksum as
>well or you wouldn't be able to change anything at all.

>> The code I'm using for a file with a 7 character ID is:

>  use strict;
>  use warnings;

I left out a lot of the code, use strict and warnings are up there, yeah :)


>> open (TEMPLATE, "<$template") or die "Could not open Template. ($!)";
>> binmode (TEMPLATE);
>
>> open (NEW, ">$newfile") or die "Could not open file $dws ($!)";

>What's $dws?

Me forgetting to change the variable name.  Oops.

>> binmode (NEW);
>> while (<TEMPLATE>) {
>>
>>   s/REPLACE/$id/;
>>   print NEW $_;
>> }
>
>> close NEW;
>> close TEMPLATE;

>Yes, that'll do it, but how do you generate these different
>config files in the first place? It sounds like you need to do
>it that way rather than hack a generic file. There's no way of
>telling what the program expects without the source code.

I generate the config "templates" by going in to the app and
configuring the settings I want, then copying out that config
file.  The reason I'm trying to "automate" this is that creating
a config file within the application takes ~10 minutes, and there
are over 1500 of them to make, that can change on a regular basis.

I only need around 10 templates, though.

There is no way I can see the source, however I am 100% sure a
template done the way I am now works, as long as the orignal
and new templates contain strings of the same lengths.


>Rob

Thanks for the help.

-Tony




--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to