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

Как скопировать содержимое файла в строку

24.01.2015, 18:02. Показов 1898. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пример из делфи:
// Копируем содержимое файла в строку S
SetString(S, PAnsiChar(ms.Memory), ms.Size);

Задача:
C++
1
2
3
4
TMemoryStream *MS = new TMemoryStream;
          MS->LoadFromFile("C:\\......xls");
          MS->Position=0;
        AnsiString S="";
Вопрос как скопировать содержимое файла в строку S
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.01.2015, 18:02
Ответы с готовыми решениями:

Как скопировать содержимое файла в буфер обмена?
как скопировать содержимое файла в буфер обмена ??

Как скопировать содержимое текстового файла в TextBox?
Как скопировать содержимое текстового файла в TextBox? Или вообще можно сделать так чтоб вся текстовая информация содержащаяся на...

Как скопировать содержимое одного .config файла в другой?
У меня есть два .config файла. Я хотел бы скопировать содержимое одного файла в другой. Как это сделать? Пытался использовать это:...

5
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.01.2015, 18:28
TStringStream
0
0 / 0 / 1
Регистрация: 19.08.2012
Сообщений: 55
24.01.2015, 18:50  [ТС]
Задача иная. Не данные компонента, а данные из файла TMemoryStream. Применив Ваши рекомендации, получаю ошибку:
C++
1
E2034 Cannot convert 'TMemoryStream *' to 'TComponent *'
Добавлено через 4 минуты
Хотя все правильно, беру с руководства мануал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
String __fastcall ComponentToString(TComponent *c)
{
  String as;
  std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
  std::auto_ptr<TStringStream> pss(new TStringStream(as));
 
  try
  {
    pms->WriteComponent(c);
    pms->Seek(0, soFromBeginning);
    ObjectBinaryToText(pms.get(), pss.get());
    pss->Seek(0, soFromBeginning);
    as = pss->DataString;
  }
  catch(...)
  {
    ShowMessage("Streaming error.");
  }
 
  return as;
}
но выдает - ту же ошибку.

Добавлено через 2 минуты
Мой текущий код вот такой:
C++
1
2
3
4
5
6
7
8
9
10
11
          TMemoryStream *MS = new TMemoryStream;
          MS->LoadFromFile(files);
          MS->Position=0;
          AnsiString txt="";
          std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
          std::auto_ptr<TStringStream> pss(new TStringStream(txt));
          pms->WriteComponent(MS);   // Выдает ошибку в данной строке
          pms->Seek(0, soFromBeginning);
          ObjectBinaryToText(pms.get(), pss.get());
          pss->Seek(0, soFromBeginning);
          txt = pss->DataString;
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
24.01.2015, 18:52
Цитата Сообщение от Sergey R Посмотреть сообщение
Задача иная.
Ну а извилинами пошевелить, методы и свойства класса посмотреть?

Добавлено через 1 минуту
Ну есть как альтернатива есть еще и TFile::ReadAllText()
0
0 / 0 / 1
Регистрация: 19.08.2012
Сообщений: 55
24.01.2015, 19:31  [ТС]
C++
1
2
3
4
5
6
          TMemoryStream *MS = new TMemoryStream;
          MS->LoadFromFile(files);
          MS->Position=0;
          AnsiString txt="";
          TEncoding *tyt;
          txt=TFile::ReadAllText(fls, tyt->Unicode);
Не подходит по причине не возможности использовать кодировку "windows-1251".
В корне моей задачи - стоит выгрузка файла Ексель в броузер клиенту, кодировка имеет очень большую роль (открывал где то такой новый топик сегодня) - все работает но ексель не выгружает. Знаки вопросов, квадратики, но не Ексель. Пробывать с простым текстовым файлом с русским текстом - нет результата.

Хотя все начиналось с работающего примера с дельфи:
Пример из делфи:
Delphi
1
2
// Копируем содержимое файла в строку S
SetString(S, PAnsiChar(ms.Memory), ms.Size);
0
0 / 0 / 1
Регистрация: 19.08.2012
Сообщений: 55
27.01.2015, 23:06  [ТС]
Прошу гурру помочь дельным советом (частью кода). В Web Server иметь проблему выгрузить или загрузить файл - это стыдно, зачем тогда такой прекрасный функционал, можно и в НТМЛ нарисовать за 5 минут.

Добавлено через 7 минут
Для выгрузки нашел работающий вариант:
C++
1
2
3
4
5
6
7
8
           TMemoryStream *MS = new TMemoryStream;
          MS->LoadFromFile("C:\\...\\report.xls");..
          MS->Position=0;
          AnsiString S="attachment; filename=report.xls";
          Response->ContentType="application/octet-stream";
          Response->ContentStream=MS;
          Response->SetCustomHeader("Content-Disposition", S);
          Response->ContentType= "TEXT/HTML; CHARSET=UTF-8";
Выгружает Ексель файл и открывает Ваш МС Ексель программу и файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2015, 23:06
Помогаю со студенческими работами здесь

Как скопировать строку c одного файла и вставить в другой файл эту же строку с символом в конце “_”
Подскажите, как можно через cmd скопировать строку с одного файла 1.txt и вставить в другой 2.txt, эту же строку и ниже в столбик ее только...

Как скопировать рандомную строку из текстового файла
Имеется текстовый файл с именем text.txt. В нем строки: фывфыв qweqwe sadasd йцуйцу Как сделать, чтобы переменная получила...

Как скопировать строку из файла .txt в переменную String?
Есть файл .txt, в котором есть 1 строка. Нужно при нажатии на кнопку TButton скопировать эту строку в переменную String.

Скопировать содержимое текстового файла
Скопировать содержимое текстового файла, удалив в каждой строке предпоследнее слово. Выдает ошибку в 37 строке. Вызвано исключение:...

Скопировать содержимое txt файла
Доброго времени суток. Задача такая, на сервере есть два файла file1.txt, file2.txt . Нужно скопировать file1.txt в file2.txt так, чтобы...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru