michal11 |
» 2017-04-03 23:00:24 Nic nie stoi na przeszkodzie żebyś sobie wymyślił swój własny format, ale skoro możesz skorzystać ze znanych i sprawdzonych rozwiązań (do których istnieją już edytory, biblioteki itp.) to czemu tego nie zrobić? |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-04-03 23:47:09 @seamonster Aha to super :D Proste i klarowne. Ostatnie pytanie. Wszystko bede zapisywal do jednego stringa (całą linie w ktorej beda 4 slowa i 2 zdania) po czym bede je rozdzielal, czyli kazde slowko/zdanie do osobnego stringa. Jak to zrobic? Poruszac sie wskaznikiem po stringu i dopisywac kolejne jego literki do innego, dopóki nie trafie na przecinek, albo koniec stringa?
@michal11 Wlasnie zastanawialem sie, jak sie tworzy wlasne formaty, ale tak jak mowisz, uzyje czegos z juz dostepnych:) |
|
Saran |
» 2017-04-04 00:53:31 Parę wskazówek jeśli będziesz chciał stworzyć własny format: http://www.fileformat.info/mirror/egff/ch08_04.htm#CH08-DMYID.4 (przewiń na dół) |
|
j23 |
» 2017-04-04 10:33:04 Jak to zrobic? Poruszac sie wskaznikiem po stringu i dopisywac kolejne jego literki do innego |
Już pisałem - użyj getline do czytania kolejnych wartości. Przykład dla slowkopl;slowkopl;zdanie pl;slowkoniem;slowkoniem;zdanie niem : using rec_t = array < string, 6 >;
ifstream ifs(...); vector < rec_t > v;
while( ifs ) { rec_t rec; for( int i = 0; i < 5; ++i ) getline( ifs, rec[ i ], ';' ); getline( ifs, rec[ 5 ], '\n' ); if( ifs.fail() ) break; v.push_back( move( rec ) ); }
for( auto r: v ) for( auto s : r ) cout << s << '\n';
|
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-04-04 15:44:15 Ahhh no tak, zapomniałem, że getline ma argument domniemany - domyślnie znak nowej linii :) Dzięki za pomoc. Jak skończę albo będę miał problem, to napisze. Tymczasem dzięki!
EDIT:
Usiadłem do kodu, ale co do getline - niestety prawdopodobnie nie będę mógł go użyć. Zakładając, że w jednej kategorii jest powiedzmy ok. 30 fiszek, czyli 180 stringów (120 słówek i 60 zdań ). Chce zrobić coś takiego, że użytkownik klikając odpowiedni przycisk będzie otrzymywał kolejną, albo poprzednią fiszkę:
Plik zwierzeta:
pies, psy,nie mam psa, Der Hund, Die Hunde, Ich habe keinen Hund kot, koty, kocham mojego kota, Die Katze, Die Katzen, Ich liebe meine Katze
Użytkownik widzi fiszkę dotyczącą psa. klika przycisk "nastepna" i widzi fiszkę z kotem.
* moge użyć getline, ale będę zmuszony otwierać, wczytywać i zamykać plik.
* mogę wczytać wszystkie fiszki przy wybieraniu kategorii do jednego vectora string. Następnie, kiedy będzie to potrzebne, będę z tego vectora wydobywał poszczególne zestawy 4słowa2zdania i rozdzielał. Wydaje mi się, że druga opcja jest wydajniejsza (tylko raz otwieramy plik i wczytujemy). Tylko jak w tym przypadku rozdzielać te zestawy na słowa?
Co do drugiego sposobu jest jeszcze jeden plus - nie poruszam się po pliku lecz po vectorze co jest ławiejsze.
Wybrałem 2 sposób :)
@J23 Nie chcę używać ifstream, nigdy o nim nie czytałem i na razie nie chce się w to bawić :/ |
|
Monika90 |
» 2017-04-04 16:58:45 Wczytaj wszystko do wektora, ale nie do wektora stringów. struct Fiszka { std::string slowo_polskie; std::string zdanie_polskie; std::string slowo_niemieckie; std::string zdanie_niemieckie; };
std::vector < Fiszka > fiszki;
Nie chcę używać ifstream, nigdy o nim nie czytałem i na razie nie chce się w to bawić :/
|
A czego innego chciałbyś użyć? |
|
latajacaryba Temat założony przez niniejszego użytkownika |
» 2017-04-04 18:25:37 noo... normalnego fstream a nie Ifstream. Do vectora stringów wczytuje tylko na chwile, bo są to składnie typu: slowo,slowo,slowo,slowo,zdanie,zdanie Dopiero kiedy którejś potrzebuje, to rozdzielam ją na mniejsze elementy (słowa i zdania, bez przecinków). W każdym razie już i tak zrobiłem to w ten sposób, więc problem rozwiązany. Dziękuję wszystkim za pomoc :) |
|
j23 |
» 2017-04-04 18:28:51 @ latajacaryba, przecież w moim kodzie wszystko (tzn. cały plik) jest czytane do vectora, więc możesz sobie po tych fiszkach "chodzić" i wprzód, i w tył. normalnego fstream a nie Ifstream. |
Do czytania z pliku to żadna różnica. |
|
1 « 2 » 3 |