Cześć! Mam pytanie, tworzę notatnik w Builderze. Teraz tworzę zapis i chciałbym ,aby użytkownik nie musiał wpisywać rozszerzenia np. tekst.txt chciałbym aby wystarczyło wpisać po prostu tekst ,a program dodał by rozszerzenie. Jak tego dokonać? Za odpowiedź dziękuję.
Jak tego dokonać?
Porównujesz ostatnie cztery znaki nazwy pliku z ".txt". Jeśli są różne, dodajesz rozszerzenie:
auto p = strrchr(file_name.c_str(), '.'); if(!p || strcmp(p, ".txt") != 0 ) file_name += ".txt";
Celowo to zrobiłem, bo OP pisze w Builderze, a tam jest klasa AnsiString, więc podałem przykład, który powinien zadziałać z tą klasą.
Z drugiej strony, jeśli AnsiString, to pewnie CBv6, a to oznacza, że auto nie będzie działać... no nieważne.
gdzie to wkleić
void __fastcall TForm1::ZapiszJako1Click(TObject *Sender) { if(SaveDialog1->Execute()) { try { tresc->Lines->SaveToFile(SaveDialog1->FileName); } catch (...) { ShowMessage("Błąd zapisu pliku"); } } }
93,389 zapytań
142,385 odpowiedzi
322,547 komentarzy
62,749 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj