Pfad und Bildnamen verknüpfen



  • Single stepping until exit from function siglongjmp,
    which has no line number information.
    Warning:
    Cannot insert breakpoint 0.
    Error accessing memory address 0x131210e3: Input/output error.

    Bei der SDL Funktion IMG_Load in der aufgerufenen texture load. Das war aber nicht meine Frage.



  • mike4 schrieb:

    Single stepping until exit from function siglongjmp,
    which has no line number information.
    Warning:
    Cannot insert breakpoint 0.
    Error accessing memory address 0x131210e3: Input/output error.

    Bei der SDL Funktion IMG_Load in der aufgerufenen texture load. Das war aber nicht meine Frage.

    und das ist nicht das grundlange c forum, deswgen verschiebe ich es.



  • Dieser Thread wurde von Moderator/in rapso aus dem Forum Spiele-/Grafikprogrammierung in das Forum ANSI C verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • mike4 schrieb:

    Hallo
    // strcpy(TextureFileName1, TextureFileName);
    // strcat(TextureFileName1, DROP1_PNG);
    // if (!LoadGLTexture(TextureFileName1, DROP1_TEXTURE)) {

    Mit obigem Code (für jedes Bild) bekomme ich einen Speicherfehler, daher versuche ich sowas:

    for (int i=1; i<5; i++) {
    if (!LoadGLTexture(TextureFileName+"*.png")) {

    Meine Frage nun wie ich den Pfad TextureFileName mit dem Bildnamen verknüpfe oder am besten * alle in diesem Verzeichnis laden kann?
    Vielen Dank
    Michael

    Also ich versteh nur Bahnhof.
    Kannst du dich auch etwas klarer ausdrücken? Was willst du machen? Was willst du wozu verknüpfen? Meinst du anhängen? Dann hilft dir vielleicht concat. AnsiStrings kannst du mit + verketten. Aber was du jetzt willst, versteh ich nich.



  • Heimelchen schrieb:

    mike4 schrieb:

    Hallo
    // strcpy(TextureFileName1, TextureFileName);
    // strcat(TextureFileName1, DROP1_PNG);
    // if (!LoadGLTexture(TextureFileName1, DROP1_TEXTURE)) {

    Mit obigem Code (für jedes Bild) bekomme ich einen Speicherfehler, daher versuche ich sowas:

    for (int i=1; i<5; i++) {
    if (!LoadGLTexture(TextureFileName+"*.png")) {

    Meine Frage nun wie ich den Pfad TextureFileName mit dem Bildnamen verknüpfe oder am besten * alle in diesem Verzeichnis laden kann?
    Vielen Dank
    Michael

    Also ich versteh nur Bahnhof.
    Kannst du dich auch etwas klarer ausdrücken? Was willst du machen? Was willst du wozu verknüpfen? Meinst du anhängen? Dann hilft dir vielleicht concat. AnsiStrings kannst du mit + verketten. Aber was du jetzt willst, versteh ich nich.

    😮



  • Meine Frage nun wie ich den Pfad TextureFileName mit dem Bildnamen verknüpfe oder am besten * alle in diesem Verzeichnis laden kann?

    Für Windows-Umgebungen könnte dies so klappen,

    char TextureFileName1[_MAX_PATH];
    ...
    strcpy(TextureFileName1, TextureFileName);
    while( *TextureFileName1 && TextureFileName1[strlen(TextureFileName1)-1]=='\\' )
      TextureFileName1[strlen(TextureFileName1)-1]=0;
    strcat(TextureFileName1,"\\");
    while( *DROP1_PNG=='\\' ) ++DROP1_PNG; /* wenn DROP1_PNG als <char*> definiert */
    strcat(TextureFileName1, DROP1_PNG);
    

    für '*'-Dateimasken suche mal nach "findfirst findnext", ist aber kein ANSI C mehr.



  • Wutz schrieb:

    Meine Frage nun wie ich den Pfad TextureFileName mit dem Bildnamen verknüpfe oder am besten * alle in diesem Verzeichnis laden kann?

    Für Windows-Umgebungen könnte dies so klappen,

    char TextureFileName1[_MAX_PATH];
    ...
    strcpy(TextureFileName1, TextureFileName);
    while( *TextureFileName1 && TextureFileName1[strlen(TextureFileName1)-1]=='\\' )
      TextureFileName1[strlen(TextureFileName1)-1]=0;
    strcat(TextureFileName1,"\\");
    while( *DROP1_PNG=='\\' ) ++DROP1_PNG; /* wenn DROP1_PNG als <char*> definiert */
    strcat(TextureFileName1, DROP1_PNG);
    

    für '*'-Dateimasken suche mal nach "findfirst findnext", ist aber kein ANSI C mehr.

    😮



  • @mike4
    Oh je, ein echt kryptisches Problem. 😞 Kann es vielleicht sein dass du folgendes machen willst ?

    Bestimme das Verzeichnis A in dem TextureFileName liegt
    Für alle Dateien D im Verzeichnis A Tue
      Wenn D im Png Format ist Tue
        Dateiname = Verzeichnisname + "\\" + D;
        MeineTexturenListe.FügeHinzu(LadeTextur(Dateiname));
      Ende
    Ende
    

    @Wutz
    Dein Code zum Abschneiden des Dateinamens möge zwar vielleicht für "C:\Devel\Test.png" gehen, aber nicht für Pfade ala "Test.png".
    -> _splitpath, _fullpath, ...

    @Heimelchen

    AnsiStrings kannst du mit + verketten.

    Du meinst doch hoffentlich sd::string ???



  • Bitte ein Bit schrieb:

    Dein Code zum Abschneiden des Dateinamens möge zwar vielleicht für "C:\Devel\Test.png" gehen, aber nicht für Pfade ala "Test.png".
    -> _splitpath, _fullpath, ...

    Lies mal den Code richtig, dann verstehst du vielleicht, dass es gar nicht um Abschneiden geht.
    splitpath,fullpath ist kein ANSI C, obiges dagegen schon.



  • @Wutz
    Hast Recht. Ich habe anstatt == ein != gesehen und daher habe ich auf die Schnelle vermutet dass dein Code beispielsweise aus "C:\MeineTexturen\Readme.txt" ""C:\MeineTexturen\Drop1.png" macht. 🙂

    Nichtsdestotrotz wissen wir aber nicht was in TextureFileName1 steht. Es könnte "C:\MeineTexturen", "C:\MeineTexturen\Bild1.png", "..\..\Test" oder auch "..\..\Test\Bild1.png" stehen. Aber aufgrund des Variablen-Namens vermute (und hoffe) ich dass ein Dateiname drin steht. Und dann ist eine Zerlegung des Dateinamen-Strings von Nöten.


Anmelden zum Antworten