Problem z SaveDialogiem "nadpisywanie"

Odpowiedz Nowy wątek
2006-07-29 09:10
NowyS
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) ???

Pozostało 580 znaków

2006-07-29 09:25
Opi
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

Pozostało 580 znaków

2006-07-29 09:36
NowyS
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 :-) .

Pozostało 580 znaków

2006-07-30 11:18
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.


Byłem w KS Ekspercie!
Po szczegóły zapraszam na moją stronę WWW.

Pozostało 580 znaków

2006-07-30 12:39
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. :)


Program to zbiór zer i jedynek ułożonych tak, żeby denerwować użytkownika.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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