Builder C++ Zapis
Ostatnio zmodyfikowano 2011-12-04 19:38
DVD93 Temat założony przez niniejszego użytkownika |
Builder C++ Zapis » 2011-12-03 23:58:08 Witam piszę sobie prosty edytor HTML w Borland Builder C++ 6 i mam problem z jedną rzeczą ,a mianowicie podczas zapisu pliku mam problem z nadaniem mu rozszerzenia. void __fastcall TForm1::Zapiszjako1Click( TObject * Sender ) { if( SaveDialog1->Execute() ) { if( SaveDialog1->FilterIndex == 1 ) { Memo1->Lines->SaveToFile( SaveDialog1->FileName + ".html" ); Memo1->Modified = true; } } } Wszystkie filtry mam wypełnione ale jeśli nie dodam +"html" to dostaje plik bez rozszerzenia ,a jeśli je dodam tak jak teraz to przy każdym ponownym otwarciu pliku i jego ponownym zapisie mam o jedno .html więcej np: po 3 otwarciach i ich ponownych zapisach mam plik.html.html.html. Byłbym bardzo wdzięczny za pomoc przekopałem się przez wiele stron w Google lecz nic nie znalazłem co by pomogło. |
|
akwes |
» 2011-12-04 01:41:41 To chyba będzie proste :P
Tworzysz nowy plik czyli wymaga pełnej nazwy, bo zostaje zapisany dokładnie tak jak go nazwiesz czyli w Twoim wypadku nazwa + ".html"
Jeżeli otwierasz plik, to otwierasz plik czyli FileName to "nazwa.html" i zapisujesz jako FileName + ".html". No to jak to ma działać :) ?
Musisz w swoim programie rozróżnić dwie opcje "Zapisz" oraz "Zapisz jako..."
Pierwsza jeżeli plik jest otwarty to zapisuje go pod OpenDialog->FileName Jeżeli plik jest nowo utworzony, to zapisuje przez "Zapisz jako..."
a w "Zapisz jako..." masz już okno dialogowe SaveDialog, które ładnie daje domyślne rozszerzenie przez filtr :P |
|
DVD93 Temat założony przez niniejszego użytkownika |
» 2011-12-04 10:09:35 Mam tak zrobione lecz niestety efekt jest cały czas taki sam. Czy te filtry same nie powinny dodawać rozszerzenia?? |
|
Dragonit |
» 2011-12-04 11:04:58 U ciebie to wygląda tak: FileName.html //zapis Filename.html + ".html" // kolejny zapis itd...
Pokombinuj w tym kierunku: nazwaPliku = FileName + ".html"; // określ raz przed zapisem, a nie dodawaj kolejnego rozszerzenia Memo1->Lines->SaveToFile( SaveDialog1-> nazwaPliku ); |
|
akwes |
» 2011-12-04 12:17:38 Filtry są tylko dla użytkownika. One nic nie dodają. Jaki Borland Builder? To Ci jakiś przykład naskrobie :P void __fastcall TForm1::Button2Click( TObject * Sender ) { if( OpenDialog1->Execute() ) { Memo1->Lines->LoadFromFile( OpenDialog1->FileName ); } }
void __fastcall TForm1::Button1Click( TObject * Sender ) { if( !OpenDialog1->FileName.IsEmpty() ) { Memo1->Lines->SaveToFile( OpenDialog1->FileName ); } else { Button3Click( Button1 ); } }
void __fastcall TForm1::Button3Click( TObject * Sender ) { if( SaveDialog1->Execute() ) { Memo1->Lines->SaveToFile( SaveDialog1->FileName ); OpenDialog1->FileName = SaveDialog1->FileName; } }
|
|
DVD93 Temat założony przez niniejszego użytkownika |
» 2011-12-04 19:23:23 Dzięki wszystkim za pomoc ;) problem rozwiązałem dodając switcha który przypisywał odpowiednią nazwę do zmiennej DefaultExt ;)
Akwes jeśli jesteś dobry z Buildera to daj jakiś namiar bo pewnie będę miał jeszcze kilka pytań |
|
DejaVu |
» 2011-12-04 19:38:35 Tu sprawy się załatwia tylko i wyłącznie na forum. Indywidualnego supportu nie praktykujemy. Skoro temat jest rozwiązany to zamykam :) |
|
« 1 » |