# Variable vor Dateiname setzen, in C



## Pfeiffer (30. August 2004)

Hi,

ich möchte unter C eine Datei anlegen, 

wdatei = fopen("h:\\linux\\proxy\\entpackte\\auslesen.txt","w");

soweit so gut. Mein Problem ist jedoch, dass ich vor dem Dateinamen noch eine Variable unterbringen möchte, in welcher das Datum steht. Wie bekomme ich nun diese Variable davor? 

Danke im Voraus
Andreas


----------



## frager (30. August 2004)

Wo ist das Problem?
Meinst du so was:

```
char *datei = "h:\\linux\\proxy\\entpackte\\";
datei = strcat(datei, "2004-08-30");
datei = strcat(datei, "auslesen.txt");
```


----------



## michaelwengert (30. August 2004)

Probiers mal so

```
CString Variable
wdatei = fopen("h:\\linux\\proxy\\entpackte\\"+Variable+"auslesen.txt","w");
```
In Variable kannst dann ja reinschreiben, was du willst


----------



## Pfeiffer (30. August 2004)

hi,

@ frager

So hatte ich mir das auch vorgestellt. Es funktionier ja, wenn ich einen Text zwischen die " " schreibe. Dann wird dieser auch angehängt, ersetze ich das was in " " steht duch meine Variable, dann bekomme ich nur noch das angezeigt, was in der variable datum1 steht, d.h. er hängt mir den Inhalt nicht hinter das was in datei steht sondern überschreibt dieses und gibt mir nur das aus was in datum1 steht und da fehlt noch das erste Zeichen. Ich habe datum1 mit char *datum1 deklariert und fülle die Variable später. 

char *datei;
char *datum1;

datei = "h:\\linux\\proxy\\entpackte\\";
datum1= time.wday  //hier hole ich mir mein Datum
datei = strcat(datei, datum1);
printf("%s\n",datei);

@michaelwengert

Die Deklaration CString erkennt mein Compiler nicht. Was für eine Bibliothek brauch ich denn dazu. Ich habe die string.h eingebunden.


----------



## Endurion (30. August 2004)

> _Original geschrieben von frager _
> 
> ```
> char *datei = "h:\\linux\\proxy\\entpackte\\";
> ...


Sorry, nicht bös gemeint, aber KREISCH!

strcat hängt den Text an den String an. Der String liegt in der .EXE-Datei in einer Stringtable. Der angehängte Text wird mitten in den String-Table geschrieben.

Die Ausführung war schon richtig, wichtig ist, dass der Zielpuffer gross genug ist für den zusammengebauten String:

```
char  datei[300];

datei[0] = 0;
datei = strcat( datei, "h:\\linux\\proxy\\entpackte\\" );
datei = strcat( datei, "2004-08-30" );
datei = strcat( datei, "auslesen.txt" );
```


----------

