Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файлов в проект 
V
    Опции темы
Maycal
Дата 12.10.2007, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброе время суток уважаемые программисты. Я начинающий программист, который неделю назад закончил первый самоучитель по C++. В самоучителе к сожалению не описан метод для загрузки файла в программу, заранее не определяя его. Я хочю использовать функции FindFirst и FindNext.
Как сделать так, чтобы при нажатие на конпку Next, загружалась 
в компонент Image1 фотография .bmp из папки заданный константой Patch? Например const String Patch = "D:\\Gallerea_Maycal\\"; При следующим нажатие на этуже кнопку, в томже Image1 появлялась следующая картинка из Patch и так далее.
Люди, для меня это очень важно! Заранее спасибо.

--------------------
Да помоги кодеру, а значит - ближнему своему!
PM MAIL WWW ICQ Skype MSN   Вверх
_hunter
Дата 12.10.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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





--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
FiMa1
Дата 12.10.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
Неделю назад закончил первый самоучитель по C++. В самоучителе к сожалению не описан метод для загрузки файла в программу, заранее не определяя его. Я хочю использовать функции FindFirst и FindNext.

Этого и не должно быть описано в САМОУЧИТЕЛЕ ПО ЯЗЫКУ. Это определенная прикладная задача.
Цитата
Как сделать так, чтобы при нажатие на кнопку Next, загружалась 
в компонент Image1 фотография .bmp из папки заданной константой Patch? Например const String Patch = "D:\\Gallerea_Maycal\\"; При следующем нажатии на эту же кнопку, в том же Image1 появлялась следующая картинка из Path и так далее.

Предлагаю следующее: Пусть path = "d:\\prog\\", картинки называем к примеру так 1.bmp, 2.bmp, ... n.bmp
Тогда по программе для загрузки следующей картинки пишем что-то вида
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    AnsiString path = "d:\\prog\\"; // лежат файлы 1.bmp, 2.bmp
    static int imgnum = 0;
    const int MAX_IMG_NUM = 10; // количество картинок в директории
                          // лучше определять программно, поиском *.bmp файлов в path - FindFirst/FindNext

    if(++imgnum < MAX_IMG_NUM)
        Image1->Picture->LoadFromFile(path + imgnum + ".bmp");
}


Это сообщение отредактировал(а) FiMa1 - 12.10.2007, 13:35
PM   Вверх
Dronchik
Дата 12.10.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


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

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



Maycal, напиши точнее что ты используешь С++ или C++ Builder? Это разные вещи. Примеры данные _hunter и FiMa1 используют C++ Builder.


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
dumb
Дата 12.10.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



Dronchik
Цитата(Maycal @  12.10.2007,  13:23 Найти цитируемый пост)
в томже Image1 появлялась следующая картинка
smile
PM MAIL   Вверх
Dronchik
Дата 12.10.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


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

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



Maycal, создай string или чтото подобное, присваивай последовательно ему нужные тебе значения значения и используй этот string как имя битмапа. 


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Maycal
Дата 12.10.2007, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Я пишу на языке C++ в среде разработки C++ Builder. Мне не нужно чтоб появлялся OpenDialog1 как предложил _hunter? и невкоем случае не задовать жестко файлы. Мне нужно сделать так, чтобы сколько в папке картинок (обсолютно с разными названиями), те и по очереде загружались в Image1 c использованием Button1 (Next). Я слышал что это можно сделать путем Findfirst и FindNext, но как конкретно сделать я не знаю. Помогите пожалуйсто!
--------------------
Да помоги кодеру, а значит - ближнему своему!
PM MAIL WWW ICQ Skype MSN   Вверх
Dronchik
Дата 12.10.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


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

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





--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
zkv
Дата 12.10.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(Dronchik @  12.10.2007,  13:05 Найти цитируемый пост)
С++ или C++ Builder? Это разные вещи.

все равно что сказать: "птица и ворона разные вещи..."  smile 
PM MAIL   Вверх
Dronchik
Дата 12.10.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


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

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



Цитата(zkv @ 12.10.2007,  14:02)
Цитата(Dronchik @  12.10.2007,  13:05 Найти цитируемый пост)
С++ или C++ Builder? Это разные вещи.

все равно что сказать: "птица и ворона разные вещи..."  smile

я имел ввиду что кодинг на С++ простом отличается от кодинга на Билдере


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

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


Опытный
**


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

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



Цитата(Maycal @ 12.10.2007,  13:52)
Я пишу на языке C++ в среде разработки C++ Builder. Мне не нужно чтоб появлялся OpenDialog1 как предложил _hunter? и невкоем случае не задовать жестко файлы. Мне нужно сделать так, чтобы сколько в папке картинок (обсолютно с разными названиями), те и по очереде загружались в Image1 c использованием Button1 (Next). Я слышал что это можно сделать путем Findfirst и FindNext.

В моем примере жесткой привязки нет...
Listing the Files in a Directory
PM   Вверх
Lazin
Дата 12.10.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



В BCB есть свои функции FindFirst, FindNext (SysUtils). Работают они так: сначала вызываешь FindFirst с параметрами TSearchRec  и маской для поиска. Затем ф-ей FindNext ишешь следуюший файл, и так пока ф-лы отвечающие критерию не кончатся

Код

//глобальная переменная или член класса формы
TSearchRec searchResult;

-----

//событие OnCreate 
if ( FindFirst("*.bmp", faAnyFile, searchResult) == 0)
 Image1->Picture->LoadFromFile( searchResult.Next );

-----

//поиск и загрузка изображения
if (FindNext(searchResult) != 0)
 Image1->Picture->LoadFromFile( searchResult.Next );

-----

//событие OnClose формы
FindClose(searchResult);

PM MAIL Skype GTalk   Вверх
zkv
Дата 12.10.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(Dronchik @  12.10.2007,  14:12 Найти цитируемый пост)
кодинг на С++ простом

да не бывает кодинга на с++ простом, все равно работаешь в каком то определенном компиляторе, со своими особенностями, а просто с++ - это абстракция, на ней программу не напишешь...
PM MAIL   Вверх
Dronchik
Дата 12.10.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


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

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



zkv, понял, туплю


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
dumb
Дата 12.10.2007, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

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



упрощаем: smile
Код

const String Patch = "D:\\Gallerea_Maycal\\";

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  AnsiString sMask = Patch + "*.bmp";
  SendMessage(ListBox1->Handle, LB_DIR, DDL_READONLY | DDL_READWRITE, reinterpret_cast<LONG>(sMask.c_str()));
  ListBox1->ItemIndex = 0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  if (ListBox1->ItemIndex < ListBox1->Items->Count - 1)
    ListBox1->ItemIndex++;
  else
    ListBox1->ItemIndex = 0;
  String curFile = Patch + ListBox1->Items->Strings[ListBox1->ItemIndex];
  try {
    Image1->Picture->LoadFromFile(curFile);
  }
  catch (Exception &E)
  {
    Image1->Picture = 0;
  }
}
//---------------------------------------------------------------------------

а ListBox можно сделать скрытым...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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