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.
> 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;
> open (TEMPLATE, "<$template") or die "Could not open Template. ($!)";
> binmode (TEMPLATE);
>
> open (NEW, ">$newfile") or die "Could not open file $dws ($!)";
What's $dws?
> 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.
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]