TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Joe Kelch
from: Mike Bilow
date: 1995-04-16 07:45:34
subject: Borland Strings

Joe Kelch wrote in a message to Donnie Benners:

 JK> Everyone seems to suggest something like this, but I fail to
 JK> see how this is any different in effect from simply
 JK> declaring char StrName[10] to begin with, which is what I
 JK> trying NOT to do.  I want a VARIABLE length string, which
 JK> apparently C just doesn't let you do!

C does have the ability to read one character at a time and build a memory
buffer as needed.  This is pretty inefficient for reasons external to the
language, but it can be done.  This is untested code, written off the top
of my head.  It shows the basic idea.

   char *buildstring(FILE *fp) {

      char *base, *newbase, *p;

      p = base = NULL;

      while(NULL != (newbase = realloc(base, p - base + 1))) {

         base = newbase;

         if(EOF == (*p++ = getc(fp)))
            break;
      }

      *(--p) = '\0';

      return(base);
   }

 
-- Mike


---
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)
SEEN-BY: 105/42 620/243 711/401 409 410 413 430 807 808 809 934 955 712/407
SEEN-BY: 712/515 628 704 713/888 800/1 7877/2809
@PATH: 323/107 150 3615/50 396/1 270/101 105/103 42 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.