Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранить файл, а если уже есть так - то (1), (2) и т.д. 
:(
    Опции темы
Балбес
Дата 7.12.2004, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



Привет всем!
Подскажите какой код использовать чтобы при сохранении файла учитывалось, что если там уже есть файл с таким именем, то сохранять новый файл с именем (1) или с именем (2) и т.д.
smile
PM MAIL   Вверх
Dimich
Дата 7.12.2004, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: 1
Всего: 7



1. Функцией FileExist (FileName : string) проверяешь, есть ли уже такой файл.
2. Изменяешь имя файла и снова на пункт 1 пока не получишь уникальное имя файла
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Полудненко Олег
Дата 7.12.2004, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Українець
**


Профиль
Группа: Участник...
Сообщений: 556
Регистрация: 13.8.2003

Репутация: 1
Всего: -11



Проверяеш существование файла функцией FileExists(Name:String):boolean, где Name - имя файла. Если файл существует то в цикле начинаеш подбирать нужную цифру.
PM MAIL   Вверх
Балбес
Дата 7.12.2004, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 19.8.2004

Репутация: нет
Всего: нет



Покажите пример пожалуйста, а то у меня не получается...
вот с этим:
memo1.Lines. SaveToFile
PM MAIL   Вверх
PZ
Дата 7.12.2004, 18:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Надо указать имя файла:

memo1.Lines. SaveToFile('MyFile.txt') ;
  Вверх
Zero
Дата 7.12.2004, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(PZ @ 7.12.2004, 18:59)
memo1.Lines. SaveToFile('MyFile.txt') ;

Не совсем корректно написано, более правильно будет так:
Код

memo1.Lines. SaveToFile('<Путь>+MyFile.txt');
Пример:
Код

memo1.Lines. SaveToFile('c:\MyFile.txt');

PM MAIL ICQ   Вверх
RA
Дата 7.12.2004, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Код

var
f1,F2:string;

begin
F1:='C:\my.Txt';
F2:=F1;
I:=0;


while fileExists(F1)  do
begin
F1:=F2+'('+ IntToStr(i) + ')';
inc(i);

end;

memo1.Lines. SaveToFile(F1);

end;


Это сообщение отредактировал(а) RAdmin - 7.12.2004, 19:51
PM   Вверх
SlaUr
Дата 8.12.2004, 05:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 408
Регистрация: 18.9.2003

Репутация: 3
Всего: 5



Function WhatFileName(path:string):string; Модуль MySys

Это сообщение отредактировал(а) SlaUr - 8.12.2004, 05:32
PM MAIL   Вверх
EKoshelev
Дата 8.12.2004, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 509
Регистрация: 1.9.2004

Репутация: нет
Всего: нет



RAdmin
Только номера будут после расширения добавляться...

[/code]
Код

procedure SaveFile(FName: string);
var
     nam1, nam2, NewFN: string;
     p, i: integer;
begin
 p := Pos('.', FName);
 nam1 := Copy(FName, 1, p - 1);
 nam2 := Copy(FName, p, Length(FName) - p + 1);
 // хотя легко можно сделать, чтобы этот фрагмент глюканул

 i := 1;
 NewFN := nam1 + nam2;
 while FileExists(NewFN) do
 begin
   NewFN := nam1 + '(' + IntToStr(i) + ')' + nam2;
   inc(i);
 end;

 Memo1.Lines.SaveToFile(NewFN);
end;[code=delphi]



--------------------
Вежливым и адекватным предлагаю общаться на "ты".
PM MAIL   Вверх
RA
Дата 8.12.2004, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



EKoshelev да чёто както я забыл забы. smile
PM   Вверх
z-END
Дата 10.12.2004, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 11
Всего: 102



Код

function UniqueFile(S: TFileName):TFileName;
var
x: Integer;
Dir, FName, Ext: String;
begin
Dir := ExtractFIlePath(S);
FName := ChangeFileExt (ExtractFIleName(S), '');
Ext := ExtractFileExt(S);
x:=1;
Result := S;
 while fileexists (Result) do
  begin
    Result := Dir + FName + '_' + inttostr (x) + Ext;
 Inc(x);
end;
end;

Пример использования:
Код

memo1.Lines. SaveToFile (UniqueFile ('c:\MyFile.txt'));




--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Medved
Дата 11.12.2004, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(Zero @ 7.12.2004, 22:32)
Цитата(PZ @ 7.12.2004, 18:59)
memo1.Lines. SaveToFile('MyFile.txt') ;

Не совсем корректно написано, более правильно будет так:
Код

memo1.Lines. SaveToFile('<Путь>+MyFile.txt');
Пример:
Код

memo1.Lines. SaveToFile('c:\MyFile.txt');

Так тоже работать будет.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Vladimir13
Дата 14.12.2004, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



а если так:
var i:integer;
p,path,filename,format:string;
begin
if i=o then p:='';
if i>0 then p:=IntToStr(i);
while FileExists(NewFileName) do
begin
NewFileName := path +Filename+p+format;
inc(i);
end;
Memo1.Lines.saveToFile(Newfilename);
end;
//format='.txt'
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Zero
Дата 15.12.2004, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата(Pegas @ 11.12.2004, 15:28)
Так тоже работать будет.

А ну да, чё-то я тормознул. smile
PM MAIL ICQ   Вверх
Vladimir13
Дата 16.12.2004, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 8.12.2004
Где: Волгоград, Россия

Репутация: 1
Всего: 1



мой способ рботает. можно пользоваться
--------------------
Лучший метод - метод тыкаобращаться по адресу: mvdr
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0567 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.