Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

СОХРАНЕНИЕ ТЕКСТА ИЗ MEMO В [I]-ТЫЙ ФАЙЛ

16K
23 октября 2006 года
demon74
20 / / 18.10.2006
Уважаемые...подскажите плизз!
Такая ситуация: в течении минуты в Мемо посекундно аносятся строки....как их сохранить в файл я в курсе, но!!!! надо каждую минуту сохранять новые данные в новый файл...то есть : 1.txt , 2.txt.....i.txt....может кто сталкивался или знает как это сделать?....заранее благодарен
249
23 октября 2006 года
DissDoc
639 / / 01.10.2004
 
Код:
// немного псевдокода
int i = 0;
Timer()
{
    i++; // или ++i - в зависимости от вашего желания
    FileSave(IntToStr(i)+".txt");
}


Ну короче перед каждым сохранение итерацию делаешь и создаешь файл с таким именем )
16K
23 октября 2006 года
demon74
20 / / 18.10.2006
спасибо...щас попробую
3.0K
23 октября 2006 года
Мerlin
267 / / 25.07.2006
Если в файлы нужно записать, только новые записи, то два варианта.
1. Или после сохранения очистить memo:
memo1->Lines->Clear();

2. или ввести пременную(lastNdx) и сперва в OnCreateFrorm присвоить ей 0;

В обработчике:
Код:
int N = Memo1->Lines->Count;
  if(lastNdx < N)
  {
    AnsiString eol = "\r\n";
    TDateTime dt = TDateTime::CurrentTime();
    AnsiString oldFormat = LongTimeFormat;
    LongTimeFormat = "hh_mm_ss";
    AnsiString fileName = dt.TimeString() + ".txt";
    LongTimeFormat = oldFormat;
    int iF = FileCreate(fileName);
    for(; lastNdx < N; lastNdx++)
    {
      FileWrite(iF,
        Memo1->Lines->Strings[lastNdx].c_str(),
        Memo1->Lines->Strings[lastNdx].Length());
      FileWrite(iF, eol.c_str(), 2);
    }
    FileClose(iF);
  }
9.0K
23 октября 2006 года
nur87
50 / / 19.10.2006
Цитата:
FileSave(IntToStr(i)+".txt");

а как дописать чтоб она сохранялась в папку temp, например. т.е. путь был бы такой temp\\i.txt
и как потом работать с каждым файлом?

Цитата:
FILE* f = fopen(IntToStr(in)+".txt","+w");


так у меня не хочет работать. ругается что не может сконвертить ансистринг в конст чар

309
24 октября 2006 года
el scorpio
1.1K / / 19.09.2006
nur87
Естественно, ругается. Требует указатель на массив символов, а ему пихают AnsiString.
Ведь класс AnsiString не имеет метода автоматического приведения operator char*(void) - для этого нужно вручную вызывать метод c_str(void) const.
294
24 октября 2006 года
Plisteron
982 / / 29.08.2003
[QUOTE=nur87]а как дописать чтоб она сохранялась в папку temp, например. т.е. путь был бы такой temp\\i.txt
и как потом работать с каждым файлом?
 
Код:
FILE* f = fopen(IntToStr(in)+".txt","+w");

так у меня не хочет работать. ругается что не может сконвертить ансистринг в конст чар[/QUOTE]
 
Код:
FILE* f = fopen((IntToStr(in)+".txt").c_str(),"+w");

Правда, не очень красивый код получается.

Чуть не забыл: не вздумай использовать значение, возвращённое .c_str() в качестве lvalue, иначе неожиданные эффекты при работе программы гарантированы.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог