Tilted Forum Project Discussion Community  

Go Back   Tilted Forum Project Discussion Community > Interests > Tilted Technology


 
 
LinkBack Thread Tools
Old 07-18-2005, 10:52 AM   #1 (permalink)
Crazy
 
[C] Incremental string updates - 00001.png 00002.png etc

Hi,
I am writing a program in C that will be outputting a lot of files that I want to be named 00001.png 00002.png 00003.png and so on.

The way I am doing it at the moment is as follows:

Code:
        for(i=0; i < 10000; i++)
        {
                filename[4]++;
                if(filename[4] > 57)
                {
                        filename[4] = 48;
                        filename[3]++;
                        if(filename[3] > 57)
                        {
                                filename[3] = 48;
                                filename[2]++;
                                if(filename[2] > 57)
                                {
                                        filename[2] = 48;
                                        filename[1]++;
                                        if(filename[1] > 57)
                                        {
                                                filename[1]++;
                                        }
                                }
                        }
                }
                //CODE THAT WRITES TO FILE USING filename
        }
Now this seems a rather ugly way to do it. What I should be doing is simply incrementing an integer and then converting that to a string somehow, but I can't work out how to do this.

Any ideas?

Thanks

Robbie

Last edited by Jakejake; 07-18-2005 at 10:52 AM.. Reason: typo
Jakejake is offline  
Old 07-18-2005, 12:18 PM   #2 (permalink)
"Officer, I was in fear for my life"
 
hrdwareguy's Avatar
 
Location: Oklahoma City
You could do something like this:

Code:
string:filename;
for i=1 to 10000
{
  filename=IntToStr(i)+.PNG;
  while length(filename) < 12 filename='0'+filename;
  //write file here
}
where 12 is whatever lenght you want to give the filename including the .PNG extension.
__________________
Gun Control is hitting what you aim at

Aim for the TFP, Donate Today
hrdwareguy is offline  
Old 07-18-2005, 12:27 PM   #3 (permalink)
Free Mars!
 
feelgood's Avatar
 
Location: I dunno, there's white people around me saying "eh" all the time
Never mind, was thinking in Java, not C
__________________
Looking out the window, that's an act of war. Staring at my shoes, that's an act of war. Committing an act of war? Oh you better believe that's an act of war
feelgood is offline  
Old 07-18-2005, 12:42 PM   #4 (permalink)
Insane
 
In C you could do something like this:

Code:
int num = 0;
char fileName[5];
  
int i;
for(i = 0; i <= 10000; i++)
{
  sprintf(fileName, "%05d", num);
  // Append file extension to fileName and write it
  num++;		
}
Anomaly_ is offline  
Old 07-18-2005, 12:43 PM   #5 (permalink)
Upright
 
Location: Chester, UK
My C is a bit rusty but sprintf is your friend here.

Try:

Code:
char buffer[10];
for(int i=0; i<10000; i++) {
  sprintf(buffer, "%05d.png", i);
  /* write file contents */
}
the %05d is a format string that tells the compiler to format a string containing a decimal integer (the d) to a width of 5 characters (the 5) and to pad using a 0 character (the 0) and then to append that with .png.

I dont have a C compiler anymore so I cant test this but it should be right, google will find you literally hundreds of guides to format strings with printf and sprintf though.

Hope this helps
billys is offline  
Old 07-18-2005, 12:45 PM   #6 (permalink)
Upright
 
Location: Chester, UK
beaten by a minute I guess it confirms that the %05d was right though, i wasnt sure
billys is offline  
Old 07-18-2005, 01:19 PM   #7 (permalink)
Crazy
 
Thanks guys. The sprintf() command worked great.
Jakejake is offline  
 

Tags
incremental, png, string, updates


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -8. The time now is 04:17 PM.

Tilted Forum Project

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54