Problem z SaveDialogiem "nadpisywanie"

0

Witam wszystkich jestem początkowym programistą. Mój problem na tym

if SaveDialog1.Execute then
ListBox1.Items.SaveToFile(SaveDialog1.FileName+'.ini');

że jak użytkownik będzie chciał wybrać juz jakis istniejący plik z rozszerzeniem ini to zamiast go nadpisać(np. plik) zostanie utworzony nowy o nazwe np. plik.ini [glowa] ,a jak nie zostanie dodane +'.ini' owszem nadpisze plik ale problem znowu z tym że nie będzie można zapisać jako... o własnej nazwie np.plik23 ( typu pliku [*ini]) tylko zostanie utworzony plik plik23 (żadnego typu) [glowa] . Czy można w jakiś sposób (tak jak jest np. w notatniku poleceniem zapisz jako...) nadpisać istniejący plik [*ini], lub zapisać jako np. plik2 z roszerzeniem np [*ini] ( musze zapisać dane z komponentu Listbox1) ???

0

Sprawdzaj, czy wybrany plik ma już rozszerzenie INI, jeśli nie to dodaj je. Dzięki temu unikniesz powstawania plików o zwielokrotnionym rozszerzeniu: plik.ini.ini.ini

 if SaveDialog1.Execute then
   begin
    if ExtractFileExt(SaveDialog1.FileName) <> '.ini' then SaveDialog1.FileName := SaveDialog1.FileName + '.ini';

    {Dodatkowo możesz usunąć istniejący plik o takiej samej nazwie, przed zapisaniem go na dysku}
    if FileExists(SaveDialog1.FileName) then
      begin
       FileSetAttr(SaveDialog1.FileName, $00000000);
       DeleteFile(SaveDialog1.FileName);
      end;

    ListBox1.Items.SaveToFile(SaveDialog1.FileName);
   end;

Dodatkowo w ustawieniach SaveDialog (object inspector) wartość ofCreatePrompt ustaw na True

0

Wielkie dzięki :d teraz wszystko chodzi jak w zegareczku(męczyłem się nad tym dość długo). Moge teraz już zakończyć swoj program :-) .

0

To nie ma sensu! Lepiej w ustawieniach TSaveDialog poszukać właściwości Filter (lub podobnej) i tam podać wszystkie możliwe rozszerzenia. Komputer sam automatycznie doda rozszerzenie do pliku.

0

Ustaw właściwość DefaultExt SaveDialog na 'ini'. Wtedy jeżeli zaznaczysz istniejący plik, to go nadpisze, jak podasz swoją nazwę to doda rozszerzenie .ini. :)

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