Поиск:

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


Шустрый
*


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

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



Пользую LoadFromFile, SaveToFile для работы с обычным txt файлом

Файл - in.txt сохранен в ANSI кодировке, формат строк в файле
имя1 фамилия1
имя2 фамилия2
и так далее

Однако, в Memo строки поодгружаются с каким то черным квадратиком... В чем проблема, и как правильно читать файл в Memo?
Я делаю так:

Код

if(f=fopen(OpenDialog1->FileName.c_str(), "r"))
        {
        do
        {
                fgets(s, 100, f);
                Memo1->Lines->Add(s);
                if(feof(f)) break;
        }
        while (true);
        fclose(f);
        for (int i=0; i<Memo1->Lines->Count; i++)
        {
                pp=Memo1->Lines->Strings[i].Pos(' ');
                Memo2->Lines->Add(Memo1->Lines->Strings[i].Delete(pp, 1).Insert('-', pp));
                Memo2->Lines->SaveToFile("C:/out.txt");

        }
  }


Собственно, я полагаю, что просто неправильно создаю исходный файл? Или здесь какая то другая проблема?
PM MAIL   Вверх
A5uKa
  Дата 18.10.2010, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



LoadFromFile в коде не вижу  smile 

s - массив char ?

вообще я читаю так
Код

                        clmns = new TStringList;
                        clmns->LoadFromFile(Name)

PM   Вверх
Platov
Дата 18.10.2010, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(NFL @  17.10.2010,  12:43 Найти цитируемый пост)
и как правильно читать файл в Memo?

Код

Memo1->Lines->LoadFromFile(OpenDialog1->FileName);

или через промежуточный StringList как в посте A5uKa.
PM MAIL   Вверх
mrbrooks
Дата 18.10.2010, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(NFL @  17.10.2010,  13:43 Найти цитируемый пост)
В чем проблема, и как правильно читать файл в Memo?

а в чем смысл читать *.ini в Memo?
В VCL есть враппер для работы с ними - TIniFile. И делай все, что хочешь.

Приведенный твой код жесток, как никогда. В VCL достаточно богатая библиотека для работы с файлами. Стандартную библиотеку файлового ввода-вывода (тем более сишную) лучше сюда не прикручивать - для стилистики и читабельности кода.

Добавлено через 57 секунд
Цитата(Platov @  18.10.2010,  09:07 Найти цитируемый пост)
или через промежуточный StringList как в посте A5uKa. 

это самый неэффективный (но простой) способ работы с файлами. 
PM MAIL   Вверх
A5uKa
  Дата 18.10.2010, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Цитата

а в чем смысл читать *.ini в Memo?

А где там ini ? ...

Цитата

это самый неэффективный (но простой) способ работы с файлами.  

Не сказать, что бы мне было визуально это заметно  smile 
PM   Вверх
mrbrooks
Дата 18.10.2010, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(A5uKa @  18.10.2010,  09:32 Найти цитируемый пост)
А где там ini ? ...

Вот блин горелый - точняг. Действительно смотрю в книгу - вижу фигу. 
PM MAIL   Вверх
NFL
Дата 18.10.2010, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну в общем,в итоге сделал именно через loadfromfile, просто сначала хотел почему то именно классический сишный способ, но не вышло=)
PM MAIL   Вверх
xvr
Дата 18.10.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(NFL @  18.10.2010,  10:16 Найти цитируемый пост)
просто сначала хотел почему то именно классический сишный способ, но не вышло
Что бы вышло, прежде чем добавлять считанную через fgets строку к Memo через Lines->Add, отрежь '\n' в конце строки (fgets ее оставляет, а Lines->Add добавляет еще одну)


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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