Помогите советом при работе с файлом??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TONGIL
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 17.12.2005 (Сб) 13:02
Откуда: Russia

Помогите советом при работе с файлом??

Сообщение TONGIL » 08.02.2006 (Ср) 22:58

Здравствуйте!!у меня вот какая проблема!!Я написал относительно простую программу,результаты у меня сохраняются в фаил *.txt,решил усовершенствовать программу в том плане,что при каждом расчете при сохранении в фаил с тем же названием она спрашивала у человека стоит ли сохранять или нет или сохранить под другим именем.
Но он не верный потому как она все время спрашивает,заменить существующий фаил или нет,даже если это фаила нет в данной директории.
Вот этот код:
Private Sub Command3_Click()
CommonDialog1.ShowSave
On Error Resume Next
Create_File
If (DoesFileExist(CommonDialog1.FileName) = True) Then
If MsgBox("Заменить существующий файл?", vbYesNo, "Файл существует!") = vbYes Then
Create_File
Else
CommonDialog1.FileName = "*.txt"
CommonDialog1.ShowSave
Create_File
End If
End If
End Sub

Объясните пожалуйста что не так,я только начал программировать в VB,помогите пожалуйста очень надо,что нужно исправить.
Заранее большое спасибо.

Крост
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 291
Зарегистрирован: 30.01.2005 (Вс) 6:06
Откуда: Питер

Сообщение Крост » 08.02.2006 (Ср) 23:02

Убрать "Create_File" перед "If (Does...."
Хороший :D, плохой :x, злой :twisted:.

(Не)Люблю кАпаться в чЮжих сорсах.

Хочешь узнать что такое Piligrim? Прошу - http://www.piligrim-gps.ru/

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 09.02.2006 (Чт) 11:10

При открытии файла, смотри его длинну.
С уважением, GB.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 09.02.2006 (Чт) 14:19

Dir

:о)
Пора уже всем хорошим людям собраться и убить всех плохих людей.

TONGIL
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 17.12.2005 (Сб) 13:02
Откуда: Russia

Сообщение TONGIL » 09.02.2006 (Чт) 22:33

Честно сказать не понимаю как исправить,а можно поконкретнее удаление Create_File перед If не помогает(((

zulus
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 13.02.2006 (Пн) 11:02

Сообщение zulus » 13.02.2006 (Пн) 12:53

если совсем просто (без FSO), то:
[хотя есть возможность сделать проверку через флаги коммона]


Private Sub Command3_Click()
Dim cf as long,fname as string,cfree%

On Error Resume Next
CommonDialog1.ShowSave
CommonDialog1.FilterIndex = "All text files (*.txt)|*.txt"

fname=CommoDialog1.FileName
cf=CheckForFile(fname)

cfree%=freefile
If са=1 Then
If MsgBox("Заменить существующий файл?", vbYesNo, "Файл существует!") = vbYes Then
'сохранешь сюда свой текст (способов полно, поэтому не пишу ничего)
End If
elseif ca=2 then
'сохранешь сюда свой текст (способов полно, поэтому не пишу ничего)
end if

End Sub


Public Function CheckForFile(cFile as String) as Long
Dim I&,cfree%

on error goto errcheck
cfree%=freefile
open cfile for input as#cfree%
close#cfree%
CheckForFile=1 'файл есть

exit function

errcheck:
CheckForFile=2 'файла нет
End Function
Just a Zulus!

Ramauf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 03.08.2003 (Вс) 21:10
Откуда: Кумертау

Сообщение Ramauf » 13.02.2006 (Пн) 15:18

Действительно, посмотри длинну файла (FileLen), а потом уже манипулируй.

Ramauf
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 03.08.2003 (Вс) 21:10
Откуда: Кумертау

Сообщение Ramauf » 13.02.2006 (Пн) 15:20

Только сначала посмотри, а потом делай Open file1 for че-то_та и т.д. Ато он сразу сождает когда open for output делаешь.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 13.02.2006 (Пн) 15:51

А что Dir не помог?
Пора уже всем хорошим людям собраться и убить всех плохих людей.

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 13.02.2006 (Пн) 19:50

Ну зачем, спрашивается, столько кода :?: :?: :?: . Можно просто перед ShowSave ставить
Код: Выделить всё
CommonDialog1.Flags = cdlOFNExplorer Or cdlOFNOverwritePrompt Or cdlOFNPathMustExist
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

zulus
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 13.02.2006 (Пн) 11:02

Сообщение zulus » 14.02.2006 (Вт) 11:47

Как зачем? А вдруг чел прогу переделает и не будет в ней CommoDialog, что тогда? Сушить весла?
Just a Zulus!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 52

    TopList