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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++ Builder] Удаление информации из файла 
V
    Опции темы
Malish
Дата 7.6.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте.

Помогите написать функцию?

Есть определенный текстовый(txt) фаил, из которого нужно удалить все буквы "а", или любой другой символ, с последующем выводом в Мемо. Как это сделать?
 
PM MAIL   Вверх
mr.Anderson
Дата 7.6.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



Я так понял, если юзаем Мемо, то создаем Вин-проект, так? Тогда могу предложить такой вариант:

1. Шаг первый: создадим глобальную переменную имени файла. Вне тела функции пишем:
Код

const AnsiString filename="name_of_your_file.txt";


2. Второе. Кидаем на форму ЛистБокс, затем рисуем в событии OnCreate главной формы:
Код

ListBox1->Items->LoadFromFile(filename.c_str());

3. А затем кидаем на форму кнопку для запуска функции и рисуем в ее OnClick - событии следующее:
Код

const AnsiString symbol="a";
int pos=0;

for(int i=0; i<=ListBox1->Items->Count-1; i++)
 if(pos==( ListBox1->Items->Strings[i].AnsiPos(symbol) ))
  ListBox1->Items->Strings[i].Delete(pos,1);

ListBox1->Items->SaveToFile(filename);

Memo1->Lines->LoadFromFile(filename);

Вот, в общем-то, и все! smile  

Это сообщение отредактировал(а) sim7 - 7.6.2006, 21:42


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Malish
Дата 7.6.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



sim7,  спасибо, сейчас попробую. 
PM MAIL   Вверх
Malish
Дата 7.6.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



sim7, не получилось.

H-фаил.

Код

class TMalish
{
public:
AnsiString symbol;
AnsiString filename;
TMalish();
void Udalit();
};

class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TButton *Button1;
        TEdit *Edit1;
        TLabel *Label1;
        TListBox *ListBox1;
        TMemo *Memo1;
        void __fastcall FormCreate(TObject *Sender);
        void __fastcall Button1Click(TObject *Sender);
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
        TMalish *Malish;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif



cpp-фаил

Код

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
Malish = new TMalish();
}
//---------------------------------------------------------------------------
TMalish::TMalish()
{
filename = "Malish.txt";
}

//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListBox1->Items->LoadFromFile(Malish->filename.c_str());
}
//---------------------------------------------------------------------------
void TMalish::Udalit()
{
symbol = Form1->Edit1->Text;
int pos=0;

for(int i=0; i<=Form1->ListBox1->Items->Count-1; i++)
{
 if(pos==(Form1->ListBox1->Items->Strings[i].AnsiPos(symbol) ))
  Form1->ListBox1->Items->Strings[i].Delete(pos,1);
 }
Form1->ListBox1->Items->SaveToFile(filename);

Form1->Memo1->Lines->LoadFromFile(filename);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Malish->Udalit();
}
//---------------------------------------------------------------------------


Добавлено @ 22:25 
в ListBox открывает фаил, а при нажатии на Button, в Memo отобрадается тоже текст что и в LisyBox-е 
PM MAIL   Вверх
mr.Anderson
Дата 8.6.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


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

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



В общем-то, я так и не понял, зачем вы намутили с классами... Куда они тут? Или так нужно? В общем, вот мой работоспособный код CPP-файла:

Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

const AnsiString filen="file.txt";
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 const AnsiString symbol="à";
 int pos;
 bool flag=false;

 for(int i=0; i<=ListBox1->Items->Count-1; i++)
 do
 {
  if( ListBox1->Items->Strings[i].Pos(symbol) )
  {
   pos=ListBox1->Items->Strings[i].Pos(symbol);
   ListBox1->Items->Strings[i] = ListBox1->Items->Strings[i].Delete(pos,1);
   flag=true;
  }
  else flag=false;
 } while(flag);


 ListBox1->Items->SaveToFile(filen);

 Memo1->Lines->LoadFromFile(filen);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 ListBox1->Items->LoadFromFile(filen);
}
//---------------------------------------------------------------------------
 


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
Malish
Дата 8.6.2006, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо огромное за помощь.
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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