C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Формирования текстового файла определенного вида
IceHead
Отправлено: 10.12.2006, 11:29


Ученик-кочегар

Группа: Участник
Сообщений: 11



Необходимо запистать в текстовый файл вот такие данные:

(Данный из Файла); "Текст, (вставка данных из файла) опять текст (вставка данных из массива)".

Как это можно реализовать, подскажите пожалуйста.
olegenty
Отправлено: 10.12.2006, 11:36


Ветеран

Группа: Модератор
Сообщений: 2412



я б XML использовал для этого, просто потому что собственные форматы поддерживать сложнее (трудоёмкость больше)
IceHead
Отправлено: 10.12.2006, 14:17


Ученик-кочегар

Группа: Участник
Сообщений: 11



Не могу. Я пишу программку по отправке sms, вот в ней необходимо формировать текстовый файл для отправки.
Romikgy
Отправлено: 10.12.2006, 20:42


Дежурный стрелочник

Группа: Участник
Сообщений: 72



А я не понял какой формат те нужен?
IceHead
Отправлено: 10.12.2006, 23:24


Ученик-кочегар

Группа: Участник
Сообщений: 11



У меня есть файл с базой где указаны Фамилии, номер телефонов, адреса людей. И существует база из которой информация выгружается в текстовый файл. Мне нужно сформировать текстовый файл определенного формата, для того чтобы можно было отправить его ввиде sms. У меня щас не получается из файла с базой выдрать нужную информацию в различные переменные, т.е. Я например знаю фамилию и мне нужно по фамилии найти этого человека и сохранить в отдельную переменную его номер и в отделную переменную его адрес. Как можно проще это осуществить? Хотелось бы узнать как это можно сделать в Memo и в С.
Romikgy
Отправлено: 11.12.2006, 00:04


Дежурный стрелочник

Группа: Участник
Сообщений: 72



Формат файлов представь , а то говорить можно многое
IceHead
Отправлено: 11.12.2006, 09:34


Ученик-кочегар

Группа: Участник
Сообщений: 11



Пример:
89109233333; Уважаемый "вставка из файла" на вашем счету "вставка из файла".

Номер телефона и баланс счета должен определяется по Фамилии из файла и сохраняться номер телефона в переменную tel, а баланс в bal.
Romikgy
Отправлено: 11.12.2006, 10:41


Дежурный стрелочник

Группа: Участник
Сообщений: 72



Дык мя и интересует формат файлов с фамилиями и номерами и балансами ,
а внешнее сообщение ты и сам слепить сможешь из переменых
QUOTE
переменную tel, а баланс в bal.
IceHead
Отправлено: 11.12.2006, 11:12


Ученик-кочегар

Группа: Участник
Сообщений: 11



QUOTE

Дык мя и интересует формат файлов с фамилиями и номерами и балансами ,
а внешнее сообщение ты и сам слепить сможешь из переменых


Обычный текстовый файл с табуляцией.
olegenty
Отправлено: 11.12.2006, 11:23


Ветеран

Группа: Модератор
Сообщений: 2412



если данные берется из базы, то на стороне сервера пишешь

CODE

select
     'Уважаемый, '
   + p.Name
   + ', на вашем счету '
   + a.Amount
   + ' бабла'
from
   Person p inner join Account a on p.PersonID = a.PersonID
where
   [conditions]


а на клиенте получаешь и льёшь в файло.
Romikgy
Отправлено: 11.12.2006, 12:40


Дежурный стрелочник

Группа: Участник
Сообщений: 72



QUOTE (IceHead @ 11.12.2006, 10:12)
QUOTE

Дык мя и интересует формат файлов с фамилиями и номерами и балансами ,
а внешнее сообщение ты и сам слепить сможешь из переменых


Обычный текстовый файл с табуляцией.

ну тогда и работай как с обычным файлом
IceHead
Отправлено: 11.12.2006, 14:19


Ученик-кочегар

Группа: Участник
Сообщений: 11



QUOTE

ну тогда и работай как с обычным файлом


Если бы я знал то не писал тут. angry2.gif
olegenty
Отправлено: 11.12.2006, 14:40


Ветеран

Группа: Модератор
Сообщений: 2412



это можно сделать, например, при помощи ofstream. RTFM.
Shagg
Отправлено: 11.12.2006, 17:59


Дежурный стрелочник

Группа: Участник
Сообщений: 69



Можно использовать шаблоны сообщений. Например:
CODE
Уважаемый <name>. На вашем счету осталось <bal>$.

Тогда функция формирования сообщения выглядела бы так:
CODE
AnsiString GetSMS(TADOQuery *ADOQuery, const AnsString Name, const AnsiString TplStr)
{
 ADOQuery->SQL->Text = "select bal from t_bal where name = '"+Name+"'";
 ADOQuery->Open();
 AnsiString bal = ADOQuery->FieldByName("bal")->AsFloat;
 ADOQuery->Close();
 AnsiString s = TplStr;
 int pos;
 while ((pos = s.AnsiPos("<name>")) > 0)
 {
   s.Delete(pos, 6);
   s.Insert(Name, pos);
 }
 while ((pos = s.AnsiPos("<bal>")) > 0)
 {
   s.Delete(pos, 5);
   s.Insert(Name, pos);
 }
 return s;
}
IceHead
Отправлено: 12.12.2006, 14:51


Ученик-кочегар

Группа: Участник
Сообщений: 11



Спасибо. Я решил проблему.

Вернуться в Вопросы программирования в C++Builder