Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Bildfolgen öffnen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
26.04.2004, 16:21 Uhr
~Heiner
Gast


ich wollte ein programm schreiben das mehrere durchnummerierte Dateien öffnet.
z.b.bild001.bmp ,bild002.bmp,bild###.bmp

ich habe mir das ungefähr so vorgestellt.


C++:
FILE *inputBMPFile;
char inputFileName[FILENAME_MAX]="bild001.bmp";    

//-----inputFileName beinhaltet den ersten Dateinamen wird normal nicht fest
//-----vergeben nur hier als Beispiel.

int frame_count=0;

do
{
inputFileName+frame_count;
inputBmpFile = fopen(inputFileName, "rb")
}
while (frame_count<frame_num)



das funktioniert aber nicht wie kann ich die Dateinamen so zerlegen und wieder zusammensetzen das ich folgendes schema bekomme:
bild###.bmp

bild : bleibt immer gleich
nummer : wird erhöht
endung:bleibt gleich

Danke ich hoffe mir kann jemand helfen
Gruß Heiner


Bearbeitung von Pablo:

Bitte, CPP Tags selber benutzen


Dieser Post wurde am 26.04.2004 um 18:24 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.04.2004, 17:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


probiers mal mit sprintf
das sollte der befehl sein den du suchst
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.04.2004, 17:50 Uhr
~Heiner
Gast


Danke hat sehr geholfen. Das ist schon mal der Weg wie ich den Namen zusammensetzen kann.
Gibt es auch mit dem ich einen Dateinamen zerlegen kann:
oder einen der erkennt was int sind???

z.b:
string nameNummerEndung;
string name; //buchstabenanzahl unbekannt
int nummer;//Ziffernanzahl unbekannt
string endung;

//einlesen von bild0123.bmp


cin<<namenNummerEndung;

??? zuweisung das untere Aussage war.

//trennen bzw zuweisen auf
dateiname = bild;
dateinummer=0123;
endung=bmp;

Gruß Heiner
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.04.2004, 17:53 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


analog zu sprintf gibt es sscanf

wobei das c ist. du scheinst ja c+ verwenden zu wollen wie die verwendung von string vermuten lässt.

wenn das teil immer bild heisst kannst du ja auch einfach die ersten 4 buchstaben wegschneiden und dann gucken wann der erste punkt kommt, alles dazwischen wird dann ja vermutlich ne nummer sein
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 26.04.2004 um 17:54 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.04.2004, 18:25 Uhr
Pablo
Supertux
(Operator)


Mich würde es wundern, wenn dein Compiler das frisst

C++:
char inputFileName[FILENAME_MAX]="bild001.bmp";


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.04.2004, 18:38 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@Pablo
warum sollte er es nicht fressen?
ohne das zu testen bin ich sicher das es meiner nehmen wird
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.04.2004, 18:55 Uhr
heiner




C++:
char inputFileName[FILENAME_MAX]="bild001.bmp";


ich habe das nur so hingeschrieben das klar ist was als inputFileName sein könnte ich habs noch nicht probiert ob der kompiler das frisst.
jetzt noch ne Frage also ich benutze c++.

Wenn ich jetzt nicht weiß wie der Dateiname aufgebaut ist das heißt
ich weiß nur das eine laufende Nummer im Name vorhanden ist kann ich durch irgend ein Befehl den Namen in Strings und Integers auftrennen???

Danke für die Tips bis jetzt.
Wenn nicht muß ich es mal mit sscanf probieren und die zu benutzende Namen einschrenken.

Dieser Post wurde am 26.04.2004 um 19:01 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.04.2004, 18:57 Uhr
heiner



Sorry hab mich extra regestriert um den scheiß mit dem falschen cpp tag zu löschen hab aber keine berechtigung!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
26.04.2004, 19:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja wenn du weisst das die nummern die du filtern willst die einzigen zahlen sind die im dateinamen vorkommen könntest du auch jedes zeichen mit isdigit überprüfen obs ne zahl ist. wenn ja weisst du das dies eins der zeichen ist das du haben willst.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.04.2004, 19:05 Uhr
Pablo
Supertux
(Operator)


@windalf: ja, hast recht, ich hab daran gedacht


C++:
char* x() {
...
}
void foo()
{
    char u[200];
    u=x();
}



Da bekommst du invalid initializer.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: