Einloggen
[c] [meta] [fefe]

/meta/ – Diskussionen über Dietchan


Antwort erstellen

(≤ 4)



[Zurück]

  • [l] Felix Wed, 04 Dec 2024 19:44:20 GMT Nr. 142271 SÄGE
    JPG 600×600 90.8k
    Ich werd noch bekloppt
  • [l] Felix Wed, 04 Dec 2024 19:44:33 GMT Nr. 142272 SÄGE
    a / b
  • [l] Felix Wed, 04 Dec 2024 19:44:50 GMT Nr. 142273
    a / b
  • [l] Felix Wed, 04 Dec 2024 19:45:18 GMT Nr. 142274
    (a) / (b)
  • [l] Felix Wed, 04 Dec 2024 19:45:36 GMT Nr. 142275
    (a)/(b)
  • [l] Felix Wed, 04 Dec 2024 19:46:24 GMT Nr. 142276
    ize_t prefixLen = sizeof(prefix) / sizeof(prefix[0]) - 1;
  • [l] Felix Wed, 04 Dec 2024 19:46:49 GMT Nr. 142277
    size_t prefixLen = sizeof(prefix)/sizeof(prefix[0]) - 1;
  • [l] Felix Wed, 04 Dec 2024 19:50:08 GMT Nr. 142278
    
        char16_t prefix[] = L"\\\\?\\";
        size_t prefixLen = sizeof(prefix) / sizeof(prefix[0]) - 1;
        char16_t suffix[] = L".txt";
        size_t suffixLen = sizeof(suffix) / sizeof(suffix[0]) - 1;
        char16_t slash = '\\';
        char16_t fileNameChar = u'Ä';
    
    

  • [l] Felix Wed, 04 Dec 2024 20:20:32 GMT Nr. 142288
    >>142227
    Funktioniert hier ohne Probleme, muss an Python liegen.
    Achtung: Zum Löschen der Datei den Dateibrauser von 7-Zip etc. nehmen.

    #include <string.h>
    #include <stdint.h>
    #include <uchar.h>
    #include <Windows.h>
    
    int main(int argc, char ** argv)
    {
        static const size_t fileNameLen = 251; // Ergibt mit ".txt" einen 255-stelligen Dateinamen im lokalen Verzeichnis
    
        char16_t prefix[] = L"\\\\?\\";
        size_t prefixLen = sizeof(prefix) / sizeof(prefix[0]) - 1;
        char16_t suffix[] = L".txt";
        size_t suffixLen = sizeof(suffix) / sizeof(suffix[0]) - 1;
        char16_t slash = '\\';
        char16_t fileNameChar = u'Ä';
    
        char16_t * currDir;
        uint32_t bufferLen = GetCurrentDirectory(0, NULL);
        currDir = malloc((bufferLen + 1) * sizeof(char16_t));
        GetCurrentDirectory(bufferLen, currDir);
        size_t currDirLen = bufferLen - 1;
    
        char16_t * fileName = malloc((prefixLen + currDirLen + 1 + fileNameLen + suffixLen + 1) * sizeof(char16_t));
        char16_t * offset = fileName;
    
        memcpy(offset, prefix, prefixLen * sizeof(char16_t));
        offset += prefixLen;
        memcpy(offset, currDir, currDirLen * sizeof(char16_t));
        offset += currDirLen;
    
        *offset = slash;
        offset += 1;
    
        for(size_t i = 0u; i < fileNameLen; i++)
        {
            *offset = fileNameChar;
            offset += 1;
        }
    
        memcpy(offset, suffix, suffixLen * sizeof(char16_t));
        offset += suffixLen;
    
        *offset = 0;
    
        HANDLE file = CreateFile(fileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        CloseHandle(file);
    
        free(fileName);
        free(currDir);
    
        return 0;
    }
    

  • [l] Felix Wed, 04 Dec 2024 20:20:59 GMT Nr. 142289
        char16_t prefix[] = L"\\\\?\\";
        size_t prefixLen = sizeof(prefix)  sizeof(prefix[0]) - 1;
        char16_t suffix[] = L".txt";
        size_t suffixLen = sizeof(suffix)  sizeof(suffix[0]) - 1;
        char16_t slash = '\\';
        char16_t fileNameChar = u'Ä';
    

  • [l] Zuse ## Admin Wed, 04 Dec 2024 20:56:13 GMT Nr. 142302
    Ist das irgendsoein Multi-Byte/ANSI-/Legacy-Encoding-Kompetentztest? Alles außer ASCII ist Bloat, sage ich euch!
  • [l] Felix Wed, 04 Dec 2024 21:25:37 GMT Nr. 142313
    Felix aus dem Faden von /fefe/ hier.
    Ich bekomme es nicht mehr reproduziert.

    Die Vermutung mit Nicht-ASCII-Geraffel ist wahrscheinlich. Eine der letzten Änderungen an der Kotdatei war, die Datei als UTF-8 mit BOM abzuspeichern, weil Clang (auf Windows) sich mit "illegal character encoding in character literal" beschwert hat (der Kot braucht das für fileNameChar). Der Text wurde nach dem UTF-8-Konvertieren direkt aus Visual Studio (es ist Windows-Kot...) kopiert und dann im Textfeld zu einem Pfosten weiterbearbeitet.

    Bis auf weiteres also vermutlich Benutzerfehler, Tschuldigung...


[Zurück]
[c] [meta] [fefe]