Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 2
Регистрация: 10.06.2015
Сообщений: 65

Чтение и перезапись массива файлов

21.01.2017, 18:52. Показов 847. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Возникла такая ситуация: Есть реализованный поисковик файлов на С++, он ищет файлы формата *doc, *.docx и файлы экселя в том числе, ПОЛНЫЙ ПУТЬ к файлам записывается в строковый массив wstring. Вопрос в том, как открыть эти файлы во время работы цикла поиска, а потом перезаписать их в новое место? Что-то вроде резервной копии должно получиться, а как открывать такие файлы на C++ я даже представления не имею
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2017, 18:52
Ответы с готовыми решениями:

Чтение из массива файлов и удаление дублирующихся строк в каждом файле массива
Добрый день, сейчас я только начал изучать powershell и программирование в целом, и сейчас у меня возникла проблема с массивами, а именно,...

Чтение и перезапись текстового файла
здравствуйте , помогите пожалуйста, суть проблемы в следующем, есть некий исходный txt файл содержащий некую строку(к примеру 0000), нужна...

Чтение и перезапись числа в файле
есть файл в нем число допусти 1000, по нажатию на кнопку мне его нужно считать в textBox...после чего я с ним провожу в программе...

10
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.01.2017, 19:18
http://cppstudio.com/post/446/
0
0 / 0 / 2
Регистрация: 10.06.2015
Сообщений: 65
21.01.2017, 20:07  [ТС]
DevAlone, было бы всё так просто, я бы не создавал тему...)

Добавлено через 33 минуты
Так, я понял, что я могу открыть и прочитать файлы только txt формата... А как можно провернуть чтение с файлами типа *.doc и т.д.? Содержимое файлов может быть любой длинны и количество строк так же любое... как прочитать файл и вывести в консоль содержимое?(
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.01.2017, 20:17
Лучше поискать готовые библиотеки, так просто, как с txt не получится
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
21.01.2017, 21:01
Цитата Сообщение от Debelzak Посмотреть сообщение
провернуть чтение с файлами типа *.doc и т.д.
Они имеют бинарный формат и используют свою собственную файловую систему (Structured Storage). Ни о каких "строках" не может быть и речи.
0
0 / 0 / 2
Регистрация: 10.06.2015
Сообщений: 65
21.01.2017, 22:29  [ТС]
gazlan, А их же можно открыть бинарно как-нибудь? И так же бинарно перезаписать, тогда и строки не нужны будут, я думаю. Я уже читал про бинарные файлы, но ничего конкретного не нашёл по моему случаю. Пробовал открыть, но совсем всё плохо получается((
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
do
        {
 
            wstring fls = data.cFileName;
            
            files[count] = path + fls;
            wcout << files[count] << endl; // проверял, находит ли мои файл по маске :) Да, находит и показывает мне полный путь до файла!!! 
            FILE *f;
            const wchar_t *ffl = files[count].c_str(); //необходимо перезаписать путь к файлу в эту переменную для работы с FILE *f;
            f = _wfopen(ffl , L"rb");//открыл в режиме побайтового чтения
            
 
            fseek(f, 0, SEEK_END);
            const long filelen = ftell(f); //определил размер файла в байтах
            wprintf_s(L"Размер: %d\n", filelen);//выводим размер файла
            wchar_t *str = new wchar_t[filelen]; //сюда хочу записать содержимое
            
            
            fread(str, filelen, 1, f);// запись содержимого в str
            wprintf_s(L"TEXT: %c\n", str);// выводит один лишь вопросительный знак...)
 
            fclose(f);
            
            count++;
 
 
        } while (n = FindNextFile(h, &data));
Вот это кусочек кода, который выводит мне размер файлов 100% правильно, но содержимое не показывает, точнее показывает лишь 1 вопросительный знак
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
21.01.2017, 23:03
Разделите вопросы - открыть и переместить / скопировать.

Для последнего есть CopyFile / MoveFile.

Открыть - это вопрос интерпретации. Можете открыть как любой другой двоичный файл - если знаете, что делать дальше.

Пример #1
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HD 1.0 :  HexDump for file 'ОТ ЛЕГЕНДЫ ДО ЛЕГЕНДЫ.doc' [00000000:00000100]
 
00000000:  D0 CF 11 E0 A1 B1 1A E1 00 00 00 00 00 00 00 00  РП.аЎ±.б........
00000010:  00 00 00 00 00 00 00 00 3E 00 03 00 FE FF 09 00  ........>...юя..
00000020:  06 00 00 00 00 00 00 00 00 00 00 00 6A 00 00 00  ............j...
00000030:  D7 34 00 00 00 00 00 00 00 10 00 00 D9 34 00 00  Ч4..........Щ4..
00000040:  01 00 00 00 FE FF FF FF 00 00 00 00 6D 34 00 00  ....юяяя....m4..
00000050:  6E 34 00 00 6F 34 00 00 70 34 00 00 71 34 00 00  n4..o4..p4..q4..
00000060:  72 34 00 00 73 34 00 00 74 34 00 00 75 34 00 00  r4..s4..t4..u4..
00000070:  76 34 00 00 77 34 00 00 78 34 00 00 79 34 00 00  v4..w4..x4..y4..
00000080:  7A 34 00 00 7B 34 00 00 7C 34 00 00 7D 34 00 00  z4..{4..|4..}4..
00000090:  7E 34 00 00 7F 34 00 00 80 34 00 00 81 34 00 00  ~4...4..Ђ4..Ѓ4..
000000A0:  82 34 00 00 83 34 00 00 84 34 00 00 85 34 00 00  ‚4..ѓ4..„4..…4..
000000B0:  86 34 00 00 87 34 00 00 88 34 00 00 89 34 00 00  †4..‡4..€4..‰4..
000000C0:  8A 34 00 00 8B 34 00 00 8C 34 00 00 8D 34 00 00  Љ4..‹4..Њ4..Ќ4..
000000D0:  8E 34 00 00 8F 34 00 00 90 34 00 00 91 34 00 00  Ћ4..Џ4..ђ4..‘4..
000000E0:  92 34 00 00 93 34 00 00 94 34 00 00 95 34 00 00  ’4..“4..”4..•4..
000000F0:  96 34 00 00 97 34 00 00 98 34 00 00 99 34 00 00  –4..—4..?4..™4..

Пример #2
Code
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 + Crypto Check for file '.\ОТ ЛЕГЕНДЫ ДО ЛЕГЕНДЫ.doc' [00000000:0069B800]
 
Setting:
--------
 
   DB Timestamp      :  Fri Nov 25 11:10:38 2016
   DB Entries total  :  4245
   Scan method       :  QUICK
   Signatures in use :  7957
 
 * Built to find everything
 
##                        Offset               Event             ASCII      T Method
--------  --  ----------  --------  ---------  --------          -----      - --------
00000001                  0035FAA8             A046                           Multimedia: (PPT) PowerPoint presentation subheader_3
00000002                  0035FAC1             FFD8FFE000                   A Gfx: JFIF image header signature [2] { 0000 }
00000003                  003A958D             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000004                  003A95A6             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000005                  003C0249             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000006                  003C0262             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000007                  003C6116             xvm                          A 'Q©Мxvm6T' { 0008 }
00000008                  003D0435             PNG                          A '"_./:PNGК*' { 000A }
00000009                  003D7C72             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000000A                  003D7C8B             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000000B                  003EE575             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000000C                  003EE58E             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000000D                  00406E91             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000000E                  00406EAA             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000000F                  00422601             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000010                  0042261A             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000011                  004392D6             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000012                  004392EF             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000013                  00451544             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000014                  0045155D             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000015                  00467AE9             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000016                  00467B02             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000017                  0047D7E9             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000018                  0047D802             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000019                  00496EBC             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000001A                  00496ED5             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000001B                  004AFB28             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000001C                  004AFB41             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000001D                  004C8EE0             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000001E                  004C8EF9             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000001F                  004E0950             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000020                  004E0969             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000021                  004F83B6             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000022                  004F83CF             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000023                  004F9D3D             kvm                          A '-Jkvm.' { 0006 }
00000024                  00500E28             .JS                          A 'RNФ.JS.оэJ:Ho' { 000D }
00000025                  0051245C             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000026                  00512475             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000027                  00527993             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000028                  005279AC             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000029                  00543500             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000002A                  00543519             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000002B                  0054BFFB             hvm                          A 'ChvmвП' { 0006 }
0000002C                  0055ADCA             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000002D                  0055ADE3             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000002E                  005709B5             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000002F                  005709CE             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000030                  0058B983             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000031                  0058B99C             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000032                  005A3CDE             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000033                  005A3CF7             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000034                  005BB2AF             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000035                  005BB2C8             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000036                  005D2704             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000037                  005D271D             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000038                  005EEE76             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000039                  005EEE8F             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000003A                  005FC0C0             (c)                          A '.MOh.[M?пБ^(c)©' { 000F }
0000003B                  00605F58             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000003C                  00605F71             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000003D                  0061D92F             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
0000003E                  0061D948             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
0000003F                  00637379             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000040                  00637392             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000041                  0064D6FB             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000042                  0064D714             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000043                  00654E23             DWF                          A 'гЯ7РDWF' { 0007 }
00000044                  00665BB3             006E                           Multimedia: (PPT) PowerPoint presentation subheader_1
00000045                  00665BCC             ‰PNG....                     A Gfx: PNG image header signature { 0000 }
00000046                  00699CE0             39300000          90..         PRNG: ISO/IEC 9899 LCG rand() increment * http://www.iso.org
 
---------------
Scan time nett, ms: 698.422877


Но разбор форматов офисных файлов - задача тяжелая, неблагодарная и плохо документированная.
0
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
21.01.2017, 23:23
Можно сохранить в html(ворд вроде умеет) и разбирать его
0
21.01.2017, 23:35

Не по теме:

Цитата Сообщение от DevAlone Посмотреть сообщение
Можно сохранить в html
А вы когда-нибудь заглядывали в HTML, созданный Word'ом?
Tip: не делайте этого перед сном :-)

0
0 / 0 / 2
Регистрация: 10.06.2015
Сообщений: 65
22.01.2017, 08:06  [ТС]
gazlan, Да видите, какая штука: мне очень хочется прочитать файл ворда или экселя и вывести содержимое, пусть не текстом, а байтами данных, для саморазвития полезно, посмотреть и, как говорится - "пожамкать" его везде. А потом я уже буду копированием заниматься, главное прочитать для начала и вывести содержимое. Я перековырял гугл, пробовал разные варианты чтения файлов, но ничего не считывает у меня..(
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
22.01.2017, 15:16
Настоятельно рекомендую начать с чего-нибудь попроще. Например, просто чтения/записи простейших структур данных a la DBF-формат.

А по теме: начинать надо с COM API для Structured Storage etc.

Добавлено через 6 минут
Забыл добавить, "новые" офисные форматы с 'X' на конце (.DOCX etc.) совершенно другие (XML + ZIP), но попроще и лучше документированы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2017, 15:16
Помогаю со студенческими работами здесь

Чтение, поиск, перезапись файла
Всем доброго времени суток. в delphi не очень силен но познания и понимание программирования есть.Хочу попросить Вас написать что...

Чтение/перезапись файла Excel с хостинга
Здравствуйте! Прошу помощи, а именно, подсказку/совет, как реализовать данный метод: на сайте находится файл типа xls (Excel), в нём...

Чтение одномерного массива с файлов
Как прописать, чтобы программа читала из файла одномерный массив?

Чтение файла xls и перезапись данных в файл txt
Задача Файл xls в нем данные (текст и числа), алгорит читает файл xls и перезаписывает данные в файл txt

Перезапись файлов
Здравствуйте, мучает такой вопрос: Есть программа которая постоянно создает и удаляет файл (когда произведет действия с ним), так вот...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru