konwersja QByteArray to QString i QString to QByteArray

0

czy taka konwersja QString do QByteArray jest poprawna ?

QString data;
QByteArray = data.toUtf8(); 

czy konwersja QByteArray do QString by jest wystarczająco dobra aby użyć tego do zapisu do pliku ?

QByteArray data=plikCSV.toUtf8();

//gdzieś niżej zapis do pliku
0

A jaki cel realizujesz?

Mam na myśli, pewnie jest zgodna z propozycją biblioteki, ale czy właściwe rozwiązanie w danej sytuacji ... who knows.
Mam przeczucie, w szerszym zamiarze coś nie gra.

0

@AnyKtokolwiek:

A jaki cel realizujesz?

chcę odczytywać z pliku CSV i zapisywać do pliku CSV

Mam przeczucie, w szerszym zamiarze coś nie gra.

np co może nie grać ?

0
  1. Mam wrażenie że rzadko trafiałem na plik CSV w unicode, częściej Code Page 1250 lub podobnej. Mam wrażenie, ze taki jest niepisany zwyczaj.
  2. wg tego
    https://www3.sra.co.jp/qt/relation/doc-snapshot/qtcore/qtextstream.html#details setCodec
    ręczna konwersja jest zbędna
    Sugerowałbym (jednak) czytać dokumentację, zaznaczam nie mam doświadczenia w Qt, ale ona jest bdb.
  3. właśnie na wdrożeniu, jakim się opiekuję, poległ domorosły programista CSV. Jestem pewien, ze szył kod jednopoziomowy, spagetti, bez warstw itd, Delphi lub podobne, a nie użył żadnej biblioteki. Wyleciało w powietrze po kilkunastu latach *), gościu poległ na apostrofie w danych które konwertował.
    Więc usilna rada: Uznana biblioteka CSV

*) choć była za względu na przepisy współczesna poprawka. Ni stąd, ni zowąd format daty wyleciał w powietrze.

0

@AnyKtokolwiek:

Mam wrażenie że rzadko trafiałem na plik CSV w unicode, częściej Code Page 1250 lub podobnej. Mam wrażenie, ze taki jest niepisany zwyczaj.

nie dziwię się, bo większość komputerów pracuje pod systemem windows, a wiadomo, że MS wspiera swoje wynalazki które niekoniecznie chcą być zgodne ze standardami

Sugerowałbym (jednak) czytać dokumentację, zaznaczam nie mam doświadczenia w Qt, ale ona jest bdb.

dokumentację czytam i to co wyczytałem i zrozumiałem, to przerobiłem "na swój rozum" i zadałem pytanie tutaj czy to co robię jest dobre.

właśnie na wdrożeniu, jakim się opiekuję, poległ domorosły programista CSV. Jestem pewien, ze szył kod jednopoziomowy, spagetti, bez warstw itd, Delphi lub podobne, a nie użył żadnej biblioteki. Wyleciało w powietrze po kilkunastu latach *), gościu poległ na apostrofie w danych które konwertował.
Więc usilna rada: Uznana biblioteka CSV

fajnie by było gdyby Qt miało coś do wczytywania CSV ale na tyle klas co jest w Qt, to nie sądzę aby to było jakieś wyzwanie aby to napisać

0

QT nie ma, QXT już ma, libka starawa ale wygląda dość sensownie:
https://wiki.qt.io/Handling_CSV
https://github.com/strixcode/libqxt/blob/master/src/core/qxtcsvmodel.cpp

2
zkubinski napisał(a):

@AnyKtokolwiek:

Mam wrażenie że rzadko trafiałem na plik CSV w unicode, częściej Code Page 1250 lub podobnej. Mam wrażenie, ze taki jest niepisany zwyczaj.

nie dziwię się, bo większość komputerów pracuje pod systemem windows, a wiadomo, że MS wspiera swoje wynalazki które niekoniecznie chcą być zgodne ze standardami

Może dlatego że "wynalazki MS" są często starsze niż "standardy"?
To czy CSV w UTF-8 się nada czy nie nada zależy od tego gdzie ma być potem użyty.

0

@Azarien:

Może dlatego że "wynalazki MS" są często starsze niż "standardy"?

zapuszczenia własnego produktu to nie tłumaczy, jest windows 10 i do tej pory nie byli w stanie tego ogarnąć ?

To czy CSV w UTF-8 się nada czy nie nada zależy od tego gdzie ma być potem użyty.

możesz rozjaśnić gdzie ma być potem użyty ?

z mojego doświadczenia to nie ma znaczenia, bo windows wspiera utf8 ale myk jest taki, że jak plik JUŻ jest zapisany w standardzie utf8, to zostanie poprawnie wyświetlony, problem jest wtedy gdy odpalasz taki windowsowy "notatnik" piszesz coś i zapisujesz, wtedy domyślne kodowanie jest ANSI czy jakoś tak...

0
zkubinski napisał(a):

@Azarien:

Może dlatego że "wynalazki MS" są często starsze niż "standardy"?

zapuszczenia własnego produktu to nie tłumaczy, jest windows 10 i do tej pory nie byli w stanie tego ogarnąć ?

Ale że niby czego nie ogarnęli?

To czy CSV w UTF-8 się nada czy nie nada zależy od tego gdzie ma być potem użyty.

możesz rozjaśnić gdzie ma być potem użyty ?

A skąd ja mam wiedzieć co z tym plikiem chcesz zrobić.

z mojego doświadczenia to nie ma znaczenia, bo windows wspiera utf8 ale myk jest taki, że jak plik JUŻ jest zapisany w standardzie utf8, to zostanie poprawnie wyświetlony, problem jest wtedy gdy odpalasz taki windowsowy "notatnik" piszesz coś i zapisujesz, wtedy domyślne kodowanie jest ANSI czy jakoś tak...

Masz chyba starego Windowsa, bo u mnie jest UTF-8 wybrane domyślnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1