Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42

2 вопроса про цикл и про FileCreate

22.07.2009, 14:05. Показов 4223. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1.При выполнении прога зависает:
C++
1
2
3
4
5
 int count = 1;
        AnsiString myF;
        while(FileExists("files\\file_1"))count++;
        myF=("\\files\\file_"+count);
        RenameFile("files\\temp\\temp", myF);
2.После создания файла к нему нет доступа пока не выйдешь из проги, как заставить создать файл и оставить его в покое после этого?
C++
1
FileCreate("files\\temp\\temp");
Добавлено через 10 минут 32 секунды
По поводу первого вопроса - мне нужно переменной myF присвоить имя, в зависимости от того какие файлы уже существуют в папке, тоесть, если есть файл file_1 , то myF должно присвоится file_2. Объясните, как это реализовать. Жду помощи.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.07.2009, 14:05
Ответы с готовыми решениями:

И снова про PopupMenu (было про длину, теперь про ширину)
Добавляем в пустое PopupMenu несколько пунктов динамически (шириной, например, до 50 символов). Отображаем его – всё нормально. Затем...

2 вопроса про носители
Привет, Помогите разобраться... 1. Купил новую флэшку С150В (на 4 ГБ). 100 МБ записываются около 2-х минут... В то время как на...

2 вопроса про службы в Windows XP
1) Как удалить службу? 2) Как изменить имя исполняемого файла, который запускает служба?

8
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
22.07.2009, 14:06
А что обозначает загадочный код ?
while(FileExists("files\\file_1"))count+ +;
Тут и зависает.
1
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
22.07.2009, 14:07  [ТС]
odip, агась, именно тут Подскажи, как правильно написать?
По поводу первого вопроса - мне нужно переменной myF присвоить имя, в зависимости от того какие файлы уже существуют в папке, тоесть, если есть файл file_1 , то myF должно присвоится file_2. Объясните, как это реализовать. Жду помощи.
0
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
23.07.2009, 09:15
Цитата Сообщение от singleplayer Посмотреть сообщение
1.При выполнении прога зависает:

Код C++1 2 3 4 5 int count = 1; AnsiString myF; while(FileExists("files\\file_1"))count+ +; myF=("\\files\\file_"+count); RenameFile("files\\temp\\temp", myF);
2.После создания файла к нему нет доступа пока не выйдешь из проги, как заставить создать файл и оставить его в покое после этого?

Код C++1 FileCreate("files\\temp\\temp");
Добавлено через 10 минут 32 секунды
По поводу первого вопроса - мне нужно переменной myF присвоить имя, в зависимости от того какие файлы уже существуют в папке, тоесть, если есть файл file_1 , то myF должно присвоится file_2. Объясните, как это реализовать. Жду помощи.

как то так:
1) посчитай колличество имеющихся файлов:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TSearchRec File;
 
  if (FindFirst(WayToGirtcInp, faAnyFile, File) == 0)
 
  {//2 если есть файл
 
    do //3 цикл do
    { 
      if (!(File.Name=="." || File.Name==".." ) )
 
       { //4 если не каталог
 
         счетчик файлов++;
     
       } //4  если не каталог
 
    } while (FindNext(File) == 0); //3 цикл do
            FindClose(File);
  }//2 если есть файл
2) по поводу создания файла - хелп:

The following example uses a button, a string grid, and a Save dialog box on a form. When the button is clicked, the user is prompted for a filename. When the user clicks OK, the contents of the string grid are written to the specified file. Additional information is also written to the file so that it can be read easily with the FileRead function.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <dir.h>
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  char szFileName[MAXFILE+4];
  int iFileHandle;
  int iLength;
  if (SaveDialog1->Execute())
  {
    if (FileExists(SaveDialog1->FileName))
    {
      fnsplit(SaveDialog1->FileName.c_str(), 0, 0, szFileName, 0);
      strcat(szFileName, ".BAK");
      RenameFile(SaveDialog1->FileName, szFileName);
    }
    iFileHandle = FileCreate(SaveDialog1->FileName);
 
    // Write out the number of rows and columns in the grid.
    FileWrite(iFileHandle, (char*)&(StringGrid1->ColCount), sizeof(StringGrid1->ColCount));
    FileWrite(iFileHandle, (char*)&(StringGrid1->RowCount), sizeof(StringGrid1->RowCount));
    for (int x=0;x<StringGrid1->ColCount;x++)
    {
      for (int y=0;y<StringGrid1->RowCount;y++)
      {
        // Write out the length of each string, followed by the string itself.
 
        iLength = StringGrid1->Cells[x][y].Length();
        FileWrite(iFileHandle, (char*)&iLength, sizeof(iLength));
        FileWrite(iFileHandle, StringGrid1->Cells[x][y].c_str(), StringGrid1->Cells[x][y].Length());
      }
    }
    FileClose(iFileHandle);
  }
}
1
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
23.07.2009, 14:27  [ТС]
FreeWay,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TSearchRec File;
 
  if (FindFirst(WayToGirtcInp, faAnyFile, File) == 0)
 
  {//2 если есть файл
 
    do //3 цикл do
    { 
      if (!(File.Name=="." || File.Name==".." ) )
 
       { //4 если не каталог
 
         счетчик файлов++;
     
       } //4  если не каталог
 
    } while (FindNext(File) == 0); //3 цикл do
            FindClose(File);
  }//2 если есть файл
можно по-подробнее это объяснить?
В частности что в скобках:
C++
1
2
(WayToGirtcInp, faAnyFile, File)
(!(File.Name=="." || File.Name==".." ) )
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
23.07.2009, 20:54
C++
1
(!(File.Name=="." || File.Name==".." ) )
В каждом каталоге есть зарезервированные имена "." и "..".
Их нужно пропустить.
1
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
24.07.2009, 09:20  [ТС]
догадался уже,что это,спс. Я по-другому реализовал-просто в имя файла при создании добавляю дату и время.
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
24.07.2009, 09:51
Цитата Сообщение от singleplayer Посмотреть сообщение
while(FileExists("files\\file_1"))count+ +;
а если поменять это дело на такое вот
while(FileExists("files\\file_"+"count") )count++;
потому как ты проверяешь постоянно на существование одного и того же файла, а надо если есть то проверять существование следующего
1
0 / 0 / 0
Регистрация: 06.07.2009
Сообщений: 42
24.07.2009, 10:10  [ТС]
mamedovvms, а, ну да,так и есть, спс, учту, если все же это понадобится снова.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.07.2009, 10:10
Помогаю со студенческими работами здесь

Два вопроса про DropDownList
Сабж следующий: 1. Есть GridView, в котором один из столбцов состоит из ячеек типа DropDownList. При выборе одного из пунктов...

2 вопроса про скорость - указатели и строки
Здравствуйте. Скажите, а работа с большими массивами с помощью указателей происходит быстрее (при передаче указателя в функцию), чем...

Два простых вопроса про консоль
Два на первый взгляд простых вопроса: 1). Как сделать, чтоб курсор не затирал следующий символ после Write (WriteLine тоже не подходит,...

Два вопроса про RTC и асм.
Два вопроса хотел бы задать: 1) Вопрос про RTC, прочитал на википедии такие слова &quot;применение специализированной схемы для RTC...

два вопроса по С++,вопрос про заг.файла и поток cin
1.У меня есть заголовoчный файл,созданный в проекте А,в проекте В он нужен,как его туда добавить?Надо самим файл из папку в папку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru