Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MkG
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 25
#1

Чтение массива объектов и регистрация расширения файла - C++

06.09.2010, 19:58. Просмотров 1009. Ответов 15
Метки нет (Все метки)

Делаю небольшую программу. Она должна открывать некий файл и обрабатываются данные из него.
В общем есть некая структура Object. Из файла считывается число n и нужно создать массив этих Object из n элементов.
Плюс, желательно сделать, чтобы можно было открыть файл с помощью моей программы. То есть я дважды щелкаю по файлу и открывается моя программа, выполняя определенные действия с этим файлом.
Как это сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2010, 19:58     Чтение массива объектов и регистрация расширения файла
Посмотрите здесь:

Чтение объектов из файла - C++
Пожалуйста, помогите с поиском ошибки. Суть - чтение объектов из файла, 3 столбца и n строк. Путем нехитрых манипуляций я понял, что,...

Вывод в файл и последующее чтение из файла объектов класса - C++
Как наиболее правильно и канонично выводить (так чтобы потом ещё и прочитать) объекты классов в файл? Представим ситуацию: Есть класс...

Добавить вывод в файл и чтение из файла объектов класса - C++
Добавить вывод в файл и чтение из файла объектов класса. Работа должна отображаться на мониторе. Прошу не много подсабить. #include...

Считывание массива объектов из файла - C++
Здравствуйте! Надеюсь на вашу помощь. Задача состоит в том, чтоб считать из файла данные и поместить каждую строку в новый объект, для...

Чтение массива из файла - C++
Здравствуйте, у меня есть массив arr, как я могу прочитать в него из файла следующую запись 0111000011 0000011011 0100011000 ...

Чтение массива из файла - C++
Здравствуйте, подскажите, пожалуйста почему не происходит чтение из файла #include <cstdlib> #include <iostream> #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
06.09.2010, 20:02     Чтение массива объектов и регистрация расширения файла #2
MkG,

Код такой:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
 
struct Object
{
//Элементы
};
 
int main()
{
    int n;
    std::ifstream ifs;
    ifs.open("Test.txt");
    ifs>>n;
    Object ObArr[n];
    //И далее
    return 0;
}
MkG
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 25
06.09.2010, 20:11  [ТС]     Чтение массива объектов и регистрация расширения файла #3
У меня в Dev-Cpp вылезает ошибка variable-sized object `ObArr' may not be initialized.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
06.09.2010, 20:18     Чтение массива объектов и регистрация расширения файла #4
MkG, М. Ну структура то пустая. Заполните ее чем-нибудь.
Если будет продолжать напишите.

C++
1
2
Object*ObArr;
ObArr=new Object[n];
MkG
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 25
06.09.2010, 20:27  [ТС]     Чтение массива объектов и регистрация расширения файла #5
Все теперь работает. A что насчет
Плюс, желательно сделать, чтобы можно было открыть файл с помощью моей программы. То есть я дважды щелкаю по файлу и открывается моя программа, выполняя определенные действия с этим файлом.
ForEveR
В астрале
Эксперт С++
7968 / 4730 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
06.09.2010, 20:32     Чтение массива объектов и регистрация расширения файла #6
MkG, Стандартом языка это не предусмотрено. А вот к WinApi можете попробовать обратиться
afiskon
65 / 53 / 3
Регистрация: 06.09.2010
Сообщений: 254
06.09.2010, 21:10     Чтение массива объектов и регистрация расширения файла #7
Нужно добавить запись в реестре, что программа такая-то отвечает за обработку файлов таких-то. Делается это, действительно, с помощью WinApi.
MkG
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 25
06.09.2010, 21:15  [ТС]     Чтение массива объектов и регистрация расширения файла #8
2afiskon.
А можно поподробнее? Что вписать в реестр и что вписать в программу, чтобы она знала, что делать с файлом, который ей пытаются впихнуть?
afiskon
65 / 53 / 3
Регистрация: 06.09.2010
Сообщений: 254
06.09.2010, 21:24     Чтение массива объектов и регистрация расширения файла #9
Честно говоря я уже очень давно ничего не писал под windows. Советую поискать в google, особенно полезным может оказаться поиск в блогах. Кроме того, посмотрите собственный реестр, сделайте поиск по имени программы браузера (firefox.exe, opera.exe или что там у Вас) - там по большому счету должно быть очевидно что и куда записать. Но вообще-то с реестром нужно быть осторожнее - не забывайте делать резервную копию системы.
MkG
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 25
06.09.2010, 21:26  [ТС]     Чтение массива объектов и регистрация расширения файла #10
А как искать?
afiskon
65 / 53 / 3
Регистрация: 06.09.2010
Сообщений: 254
06.09.2010, 21:27     Чтение массива объектов и регистрация расширения файла #11
Уж пользоваться google.com, будьте любезны, научитесь самостоятельно.
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
06.09.2010, 21:51     Чтение массива объектов и регистрация расширения файла #12
Вот нагуглил код процедуры(на Delphi) короче функция делает так чтобы файл с разрешением ext открывался программой FileName.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.RegisterFileType(ext: string; FileName: string);
var
  reg: TRegistry;
begin
  reg:=TRegistry.Create;
  with reg do
  begin
    RootKey:=HKEY_CLASSES_ROOT;
    OpenKey('.'+ext,True);
    WriteString('',ext+'file');
    CloseKey;
    CreateKey(ext+'file');
    OpenKey(ext+'file\DefaultIcon',True);
    WriteString('',FileName+',0');
    CloseKey;
    OpenKey(ext+'file\shell\open\command',True);
    WriteString('',FileName+' "%1"');
    CloseKey;
    Free;
  end;
end;
Пример работы:
RegisterFileType('DelphiWorld', Application.ExeName);
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
06.09.2010, 21:53     Чтение массива объектов и регистрация расширения файла #13
Цитата Сообщение от MkG Посмотреть сообщение
То есть я дважды щелкаю по файлу и открывается моя программа, выполняя определенные действия с этим файлом.
Присваиваете файлу какое-нибудь уникальное расширение (типа file.xyz), в проводнике два раза по нему щёлкаете, винда говорит, что не знает, что с ним делать, предлагает в сети что-нибудь поискать, отказываетесь (выбираете "указать программу"), в появившемся окне находите свою программу, следите за тем, чтобы был отмечен чекбокс "открывать этой программой все файлы с этим расширением", всё. Вот, правда, программу после этого в другое место переносить нельзя. Так, что, лучше её (программу) сначала куда-нибудь в program files засунуть...
MkG
0 / 0 / 0
Регистрация: 18.04.2010
Сообщений: 25
06.09.2010, 22:14  [ТС]     Чтение массива объектов и регистрация расширения файла #14
Mencey, я не знаю Delphi.
Easybudda, я знаю, как ассоциировать файл определенного типа с определенной программой. Я не знаю, как заставить программу корректно работать с файлом.
Mencey
147 / 94 / 7
Регистрация: 22.07.2010
Сообщений: 424
06.09.2010, 22:27     Чтение массива объектов и регистрация расширения файла #15
Код некомпилил такчто возможны ошибки. Ну думаю в целом понятно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
 
int main(int argc, char* argv[])
// argc - кол-во аргументов командной строки, argv - аргументы командной строки
{
  // Первый аргумент имя программы
  printf( "%s\n", argv[0] );
  // Например елси твоей программой открывают файл, то фторым имя открываемого файла
  if( argc <= 1 )
    return 1;
  printf( "%s", argv[1] );  
  getch();
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2010, 18:05     Чтение массива объектов и регистрация расширения файла
Еще ссылки по теме:

Чтение массива из файла - C++
Всем здравствуйте! Помогите, пожалуйста, чайнику. В программе надо сделать, чтобы массив читался из файла, а не вводился в ручную и чтобы...

Чтение массива из файла - C++
В интернете целая куча статей по чтению из текстового файла, но насколько я понял все сводится к чтению либо символа, либо строки, либо,...

Чтение массива из файла - C++
Здравствуйте! Возникла проблема со считыванием матрицы... for(int i=0;i&lt;y;i++){ for(int j=0;j&lt;x;j++){ fi&gt;&gt;*(ptd+y*i+j); ...

Чтение из файла массива - C++
Пожалуйста помогите разобрать чтение двумерного масиива из файла(не могу найти чтото понятное(


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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
2299 / 1669 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
07.09.2010, 18:05     Чтение массива объектов и регистрация расширения файла #16
MkG, почитайте тут.
Yandex
Объявления
07.09.2010, 18:05     Чтение массива объектов и регистрация расширения файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru