Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для Nastya24
32 / 18 / 7
Регистрация: 30.09.2011
Сообщений: 59

DirectoryListBox - перейти в пустую папку и создать файл

28.11.2011, 20:33. Показов 4168. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как перейти в пустую папку в DirectoryListBox и создать там файл???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2011, 20:33
Ответы с готовыми решениями:

Как можно скопировать файл в пустую папку?
Доброго дня! Подскажите пожалуйста, как можно скопировать файл в пустую папку? Я правильно понимаю, что сначала нужно создать новый файл с...

не могу удалить пустую папку
Доброе время суток народ....у меня такая проблемка я не могу удалить пустую папку(((((кричит требуется права админа хоть я и есть...

Не могу удалить пустую папку
всем привет :) ребята у меня вот такая проблема: хотела удалить одну папку загруженную с инета, и вот выдал что не возможно удалить, а...

18
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.11.2011, 21:59
Цитата Сообщение от Nastya24 Посмотреть сообщение
и создать там файл???
А поподробней?)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
29.11.2011, 00:05
Функции работы с файлами
C File Processing
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 11:42
или двумя клавишами: "Создать папку", "Создать файл"
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
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
/*   dlbox - name DirectoryListBox  */
      if (!CreateDir("MyEmptyDir"))
         ShowMessage("Îøèáêà ñîçäàíèÿ ïàïêè");
      else
    {
        dlbox->Update();
        dlbox->Directory = "MyEmptyDir";
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
      int dlinaFl;
      char *buftxt;
      HANDLE fIdx = CreateFile("myFile.txt", GENERIC_WRITE, FILE_SHARE_READ,
       NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, 0);
      if (fIdx==0) ShowMessage("Îøèáêà ñîçäàíèÿ ôàéëà");
      else
    {
      int ff = FileOpen("myFile.txt",fmOpenReadWrite);
      FileWrite(ff,buftxt,dlinaFl);
      FileClose(ff);
    }
}
//---------------------------------------------------------------------------
1
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 14:50
C++
1
2
3
4
5
6
7
8
/*   dlbox - name DirectoryListBox  */
      if (!CreateDir("MyEmptyDir"))
         ShowMessage("Ошибка создания папки");
      else
    {
        dlbox->Update();// что эта строчка делает?
        dlbox->Directory = "MyEmptyDir";// и это тоже что делает?
    }
я попытался понять выше код который и переписал по свой чуть чуть у меня такой
C++
1
2
3
4
5
{
CreateDir(Edit1->Text);
ListBox1->Update();
ListBox1->Directory = Edit1->Text;
}
при запуске выдает ошибку у меня [BCC32 Error] Unit1.cpp(21): E2316 'Directory' is not a member of 'TListBox'
Full parser context
и подчеркивает имено слово directory как исправить?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 15:20
- да никак в такой трактовке... . "Directory" является свойством компонента TDirectoryListBox, который Вы благополучно не используете. Про клавишу F1 я не упоминаю из вежливости.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 15:24
Цитата Сообщение от lexflax Посмотреть сообщение
ListBox1->Update();
ну а это строчка что выполняет? открывает каталог который выше создан?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 15:36
ну а это строчка что выполняет?
- компонент TDirectoryListBox в окне программы - это панель с деревом каталогов; если у неё атрибут Visible, то присутствует постоянно. А тут мы в какой-то функции создаём новый каталог. Дерево нужно обновить, иначе вновь созданный каталог на нём не появится.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 15:53
понятно, Ник пожалуйста подскажите Я хочу чтоб создавалась папка с тем именем который указан в едит1, а потом в этой папке создать файл, и чтоб его имя вводилось тоже с эдит1 ну или эдит2 если едит1 нельзя будет применять после его использования в создании каталога, вы явно функций знаете много, я вот такой вариант нашел вычитал просто
{
CreateDir(Edit1->Text);
Edit2->Text = _rtl_creat(*filename, attrib);
}
функция _rtl_creat(*filename, attrib) написано что для создания двоичного файла, а есть для создания обычного допустим текстового файла функция? и явно в той что написал с параметрами что в скобках не правильные указываю потому что не запускается, помогите плиз разобратся
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 16:29
Пост 4 в этой теме: куски кода из рабочей программы, там мало лишнего. Да, создаётся файл нулевой длины, поскольку буфер не заполнен. Но, в частности, текстовый файл можно создать и сохранить на диске при помощи одной строки - это у компонентов Memo и ряда других
C++
1
[FONT=monospace]Memo1->Lines->SaveToFile(FileName);[/FONT]
- FileName здесь строка названия будущего файла.
P.S. Я функций не знаю много; я их просто внимательнее применяю. Вот вводите имя нового компонента в обработчике какого-нибудь события от этого компонента, наводите мышкой на это имя курсор и нажимаете F1. Появляется хэлп, где расписаны функции и свойства этого компонента, причём расписаны и параметры для этих функций. Немного опыта, немного логики и ... - в самых тяжелых случаях ищу на форумах или спрашиваю.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 16:49
C++
1
2
3
4
{
CreateDir(Edit1->Text);
Edit2->
}
ну я для edit я так понял не подходит она, вот у меня создается с помощью функции createdir каталог имя его в поле едит1, я хочу чтоб в едит два у меня вводилось имя файла который будет создан в той каталоге что я создал, можите код рабочий написать ? мне просто нужно это как рабочий шаблон чтоб был и функцию выписать в файл отдельный для себя которая в этом поможет, стал их выписать и пояснять для себя чтоб потом легче было работать
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 17:04
- ну, это я себя же и процитирую (из 4-го сообщения)
C++
1
2
3
4
5
6
7
8
      char *buftxt; // буфер для записи
      int dlina;    // размер буфера
      CreateFile(Edit2->Text.c_str(), GENERIC_WRITE, FILE_SHARE_READ,
          NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, 0);
      int ff = FileOpen(Edit2->Text.c_str(),fmOpenReadWrite);
 // пустой файл создан и открыт для записи
      FileWrite(ff,buftxt,dlina);
      FileClose(ff);
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 17:13
C++
1
2
3
4
5
6
7
8
9
10
11
{
char *buftxt; // буфер для записи
int dlina;
CreateDir(Edit1->Text);
CreateFile(Edit2->Text.c_str(),GENERIC_WRITE, FILE_SHARE_READ,
          NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE,0); ( вот тут ошибку выдает ноль подчеркивает)
           int ff = FileOpen(Edit2->Text.c_str(),fmOpenReadWrite);
 // пустой файл создан и открыт для записи
      FileWrite(ff,buftxt,dlina);
      FileClose(ff);
}
ошибка такая
[BCC32 Error] Unit1.cpp(24): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
[BCC32 Error] Unit1.cpp(24): E2342 Type mismatch in parameter 'lpFileName' (wanted 'const char *', got 'wchar_t *')
Full parser context
Unit1.cpp(19): parsing: void _fastcall TForm1::Button1Click(TObject *)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 17:18
ну и сделайте ему constant char ( я на пятом Билдере, без юникодов. Вам, видимо, вместо c_str() нужно другое что-то применить..., типа t_str или w_str - нажмите точку после эдит-текст и подождите пару секунд, пока подсказки появятся).
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 17:26
C++
1
2
3
4
5
6
7
8
9
10
11
{
wchar_t * buftxt[1000]; // буфер для записи
int dlina;
CreateDir(Edit1->Text);
CreateFile(Edit2->Text.c_str(),GENERIC_WRITE, FILE_SHARE_READ,
          NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE,0);
           int ff = FileOpen(Edit2->Text.c_str(),fmOpenReadWrite);
 // пустой файл создан и открыт для записи
      FileWrite(ff,buftxt,dlina);
      FileClose(ff);
}
вверхную строчку изменил так надо было?? но ошибка осталась
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 17:38
так ошибка в том, что название файла непонятно для компилятора. Пока от неё не избавитесь лучше не нагромождайте дополнительных
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
30.11.2011, 12:51
C++
1
2
3
4
{
CreateDir("bek");
Memo1->Lines->SaveToFile("bek\\FileName");
}
а вот такой вариант создается папка а в ней файл... но опять же тут название папки уже прописанно, а хочется самому его ввести, но если сам введу, то потом в SaveToFile не получится его прописать и указать что в нем создать файл с таким то именем, вот можно как то переиграть это чтоб работало?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.11.2011, 13:19
Строку (AnsiString) можно собирать "из кусков", - запомните в какой-нибудь строковой переменной (напр. MyFileName) название Вашего файла и потом добавляйте его к "пути" (если он изменяется):
C++
1
Memo1->Lines->SaveToFile("bek\\"+MyFileName);
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
30.11.2011, 16:22
C++
1
2
3
4
{
CreateDir("bek");
Memo1->Lines->SaveToFile("bek\\FileName");
}
Да суть как раз в том что когда я буду создавать каталог то там он будет вводится с едит1, тоесть еще его название не известно программе и в SaveToFile первым я не знаю что записать ... строчку edit1->text? он не пропустит ну тоесть вот такой вид Memo1->Lines->SaveToFile("edit1->text\\FileName");
Мне надо как то направить, указать что именно в том каталоге и создался файл, вот как направить и показать программе путь используя именно вот эту структуру программы или чуть добавив какие то функции, тот вариант который вы мне в прошлый раз кидали он заработал , но он для меня много там непонятного и громозкий а суть хочу найти способ чтоб была и простота и код был менее громозкий

Добавлено через 1 час 1 минуту
попытался так переписать пока даже не запускается выдает ошибку в строке где namek=memo1
C++
1
2
3
4
5
6
7
8
{
AnsiString names;
AnsiString namek;
names=Edit1->Text;
namek=Memo1->Lines;
CreateDir(namek);
Memo1->Lines->SaveToFile(namek+names);
}
вот такая ошибку, че ему не нравится??? как исправить?
[BCC32 Error] sozdankatandfail.cpp(24): E2285 Could not find a match for 'operator UnicodeString::=(TStrings * const)'
Full parser context
sozdankatandfail.cpp(19): parsing: void _fastcall TForm1::Button1Click(TObject *)

Добавлено через 32 минуты
{
C++
1
2
3
4
5
6
7
AnsiString names;
AnsiString namek;
names=Edit1->Text;
namek=Edit2->Text;
CreateDir(namek);
Memo1->Lines->SaveToFile(namek+"\\"+names);
}
вот так работает так как я хотел, но теперь меня не устраивает что на форме не нужное поле мемо... но если я его уберу с формы то у меня последняя строчка не будет выполнятся , вот как тут быть? может есть предложения?

Добавлено через 11 минут
Ура теперь все меня устраивает получилось так
C++
1
2
3
4
5
6
7
8
9
10
{
 
AnsiString names;
AnsiString namek;
names=Edit1->Text;
namek=Edit2->Text;
CreateDir(namek);
TStringList* strList = new TStringList;
strList->SaveToFile(namek+"\\"+names);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2011, 16:22
Помогаю со студенческими работами здесь

Не могу создать папку на рабочем столе – выпадает ошибка – “не удалось создать папку – Указан недопустимый путь. Что делать ?
Не могу создать папку на рабочем столе – выпадает ошибка – “не удалось создать папку – Указан недопустимый путь. Что делать ? Я думаю что...

Создать на диске "С" папку, и скопировать в эту папку файл с диска "С" (TASM)
Создать на диске С:\ папку и скопировать в эту папку файл из диска С:\. Имена файла и папки необходимо ввести с клавиатуры.

Копирование только обновленных файлов в пустую папку
Есть папка с кучей файлов. В папке-получателе пусто. Допустим отредактировал файл, запускаю копирование и скопируется только этот файл, а...

Как создать папку (а не файл) в VS2003?
как создать паку (а не файл) в с++? файл я создаю так - ofstream input_file("file.txt") ; а файл в уже существующей папке так ofstream...

Создать папку и сохранить в неё файл
Здравствуйте! Вот мой код: $direct = rand(0,10); $structure = './files/'.$direct; mkdir($structure, 0777); // Создал файл ...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru