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

Клиент-серверное приложение, сохранение переписки в файл

21.11.2015, 09:11. Показов 814. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!) У меня есть два приложения: одно-клиентская часть, второе-серверная часть. Передача сообщений между ними по IP налажена (по локальной сети), с этим проблем нет. Вот как сделать так, чтобы сообщения после прекращения диалога и выхода из приложений сохранялись в каком-нибудь файле на жёстком диске? Тут я смог добиться лишь того, чтобы эти сообщения из Memo сохранялись в файл txt (Это я сделал с помощью таймера. Он постоянно синхронизируется с Memo и записывает принятые/отправленные сообщения в файл). Но при следующем входе в приложение этот файл перезаписывается.. Как сделать так, чтобы сообщения сохранялись в разные файлы? Буду очень благодарен за помощь)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2015, 09:11
Ответы с готовыми решениями:

Клиент-серверное приложение, сохранение сообщений переписки
Здраствуйте!):help: У меня есть два приложения: одно-клиентская часть, второе-серверная часть. Передача сообщений между ними по IP налажена...

Клиент-Серверное приложение. Как сделать, чтобы сервер сам отправлял сообщения на клиент
Добрый день всем. Проблема заключается в следующем: Есть клиент-серверное приложение, хочу реализовать своего рода защиту, чтобы при...

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

11
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
21.11.2015, 09:25
А как вы сохраняете инфу в файл ? Вы же имя файла задаете ? Вот и попробуйте в имени файла подставлять, например, дату. Т.о. будут создаваться новые файлы с датой в имени файла.
1
1 / 1 / 0
Регистрация: 12.04.2015
Сообщений: 36
21.11.2015, 09:38  [ТС]
Да, я задаю имя файла.. А как сделать по дате? Да и при этом, например, если я приложение несколько раз за день запускаю, то файл с датой тут не подойдёт..

Добавлено через 7 минут
Тут надо как-то сделать, чтоб и дата была, и время начала беседы. И при открытии приложения во второй раз показывалась уже та же дата, но другое время
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
21.11.2015, 10:22
Вот пример сохранения файла:
C++
1
2
3
4
String file_name_scr = "";
DateTimeToString(file_name_scr, "dd-mm-yy hh-mm-ss", Now());
path_to_dir_alert = path_to_dir_alert + file_name_scr + ".bmp";
CurrScreen->SaveToFile(path_to_dir_alert.c_str());
1
1 / 1 / 0
Регистрация: 12.04.2015
Сообщений: 36
21.11.2015, 14:26  [ТС]
Почтальон, я попробавал сделать, как вы сказали. Но появился ряд вопросов. Какой формат должен быть у path_to_dir_alert ? Я поставил String. И что такое CurrScreen? Выдаёт ошибку.. Я эту строку так записал: Memo1->Lines->SaveToFile(path_to_dir_alert.c_str()) ; В таком случае приложение запустилось. Но при попытке сохранить выдаёт ошибку: "Integer overflow"...:-(
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.11.2015, 14:37
VladMG_001, а почему не применять дозапись в файл? Допустим, при старте программы мэмо заполняется из файла, а в дальнейшем все поступающие сообщения дописываются в мэмо и дополнительно в пустой при старте список (StringList). При завершении программы этот список дозаписывается в конец файла.
0
1 / 1 / 0
Регистрация: 12.04.2015
Сообщений: 36
21.11.2015, 15:29  [ТС]
nick42, о, это было бы очень даже кстати!) но вот как это реализовать?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.11.2015, 16:06
Ну, вот приблизительно так__
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdio.h>
#include <vector>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
    std::auto_ptr<TStringList>sL1(new TStringList),sL2(new TStringList);
    char fileA[] = ".\\memo.txt" ;
    FILE *FF ;
 
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
     FF = fopen(fileA,"a+");
     if(FF) {
       fclose(FF);
       sL1->LoadFromFile(fileA);  }
     Memo1->Lines->Assign(sL1.get());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
     FF = fopen(fileA,"a+");
     if(FF)
     {
       fwrite(sL2->Text.c_str(),sL2->Text.Length(),1,FF);
       fclose(FF);
     }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    sL2->Add( Edit1->Text );
    Memo1->Lines->Add(Edit1->Text);
}
//---------------------------------------------------------------------------
Только стоит иметь в виду, что мэмо - компонент "медленный" и при объемном файле может изрядно тормозить. Варианты: грузить сначала в невидимый стринглист и лишь затем его в мэмо, или вместо мэмо использовать стринггрид в одну-две колонки.

Добавлено через 4 минуты
П.С. по кнопке текст из поля эдит1 добавляется к списку.
1
1 / 1 / 0
Регистрация: 12.04.2015
Сообщений: 36
21.11.2015, 16:29  [ТС]
nick42, спасибо за идею) попробую сделать, потом отпишу)

Добавлено через 2 минуты
nick42, немного только не понял, что вы имели ввиду, говоря про edit1.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
21.11.2015, 16:50
Цитата Сообщение от VladMG_001 Посмотреть сообщение
что вы имели ввиду, говоря про edit1
На форме три компонента: Memo1, Edit1 и Button1. Добавление записи происходит по нажатию на кнопку, - текст из Edit1 добавляется к Memo1. Сам текст из Unit1 я опубликовал. (Это чтоб несложно было воспроизвести проект даже начинающему).
1
1 / 1 / 0
Регистрация: 12.04.2015
Сообщений: 36
21.11.2015, 17:25  [ТС]
nick42, понял, спасибо) буду пробовать)
0
1 / 1 / 0
Регистрация: 12.04.2015
Сообщений: 36
21.11.2015, 17:58  [ТС]
nick42, попробовал как вы предложили. Только вместо Edit1 у меня стоит Memo2, я его использовал, но не суть. Программа запускается без ошибок. Создаётся файл memo.txt, только он пустой, хоть и нажимал на button, чтоб сохранилось.. Но в блокноте только пару невидимых знаков( P.S. на скриншоте я просто выделил эти невидимые знаки.
Миниатюры
Клиент-серверное приложение, сохранение переписки в файл  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2015, 17:58
Помогаю со студенческими работами здесь

Клиент-серверное приложение: как определить, что сервер/клиент не отвечает в течении определенного времени
Пишу клиент-серверное приложение. Использую TCPListener и TCPClient. Вопрос: как определить что сервер(клиент) не отвечает в течении...

Клиент-серверное приложение
Здравствуйте. Помогите, пожалуйста, решить задачу: Нужно создать клиент-серверное приложение; на сервере есть сообщение закодированное в...

Клиент-серверное приложение
Доброго времени суток. У меня вот такая проблема у меня уже есть программа написанная на делфи но из нее мне нужно сделать...

Клиент-серверное приложение
Создала клиент-серверное приложение.У меня код клиента в одном проекте,код сервера в другом.Скиньте пример когда клиент и сервер в одном...

Клиент-серверное приложение
Всем привет, Пытаюсь написать клиент-серверное приложение для android. Логика следующая: android устройство подключается к серверу,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru