![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Record и String: Жить им вместе? [D7, XP]
kirik © (2006-09-13 10:26:00)Как можно данные из TRecord запихнуть потоком в String? То есть например при получении через сокет пакета данных проверять если есть определённая датаграмма - то в Trecord, иначе - в String?
Barloggg (2006-09-14 09:01:00) [1]а почему бы тебе не создать свой собственный формат данных?
не протокол ясно дело?
данные передаются потоком?
ну так насуй туда управляющих символов.
скажем приходит тебе блок. известной длины.
ты читаешь первый байт. это просто идентификатор тех данных которые идут следом. скажем этот байт тебе гласит что дальше идет строка.
строки разные бывают.
предположим что у тебя перед строкой идет ее размер. какой размер 4 байта, потом текст строки.
сначал читаешь эти 4 байта в integer, потом считываешь по этому числу символы в строку.
строка считана.
читаешь следующий байт.
это идентификатор следующего подблока.
короче банальная поточная структура данных.
вот так и читаешь блок за блоком. ручками.
как записать?
тоже ручками. в соответствии с твоей структурой сначала составляешь блок: т.е. пишешь идентификатор, потом информацию, потом снова идентификатор, потом опять информацию.
но пишешь это все сначала во временный массив или в строку, в общем у себя пишешь.
и после окончяания оформления блока посылаешь его по протоколу единым махом.
и тормоза исчезнут.
это кстати ответ на самый первый вопрос.
Сергей М. (2006-09-13 14:09:00) [2]
> kirik (13.09.06 14:06) [50]
А я с машкода и ассемблера.
Мне повеситься ?)
kirik (2006-09-13 14:06:00) [3]Сергей М. я с бейсика сразу на delphi пересел... ничего уж не поделаешь
Сергей М. (2006-09-13 14:05:00) [4]pBuf := @PRecvData(Socket.Data).org
p.s.
Без знания Паскаля как такового делать тебе в сетях нечего.
kirik (2006-09-13 14:04:00) [5]Elen © (13.09.06 13:59) [46]
хочется чтобы лучше было... совершенствоваться...
kirik (2006-09-13 14:00:00) [6]Сергей М.
вот здесь:
выдаёт несовместимость типов...
var
pBuf: ^TOrganization;
cBytesToRead: Integer;
cBytesRead: Integer;
begin
pBuf := PRecvData(Socket.Data).org;
Elen (2006-09-13 13:59:00) [7]
> kirik
Вот и подумай на будущее о базах данных. А сейчас оставь как есть раз твой проект будет менятся радикально в корне то нет смысла его колбасить до суперского
kirik (2006-09-13 13:58:00) [8]Ну сам принцип.. запрос-ответ.. и всё такое.. а не использовал потому что не умею, только и всего... вот пытаюсь научиться тут у вас.
Сергей М. (2006-09-13 13:56:00) [9]
> kirik (13.09.06 13:46) [40]
>
> Хотел реализовать наподобие POP3 сервера...
К POP3-серверу изложенное тобой не имеет ни малейшего отношения
А если бы и имело, то почему ты не использовал готовые компоненты, реализующие этот протокол ?
kirik (2006-09-13 13:55:00) [10]Elen хочу конечно.. и формат данных меняться будет... но сейчас это на первом плане...
Elen (2006-09-13 13:52:00) [11]
> kirk
Ну ты зачем и кому эту прогу делаеш? Что обновлять версии со временем не хочеш?
kirik (2006-09-13 13:46:00) [12]Хотел реализовать наподобие POP3 сервера...
kirk (2006-09-13 13:46:00) [13]> до следующего апгрейда.
какого?
Сергей М. (2006-09-13 13:45:00) [14]
> kirik (13.09.06 13:41) [37]
Здесь и не издеваются.
Здесь тебе намекают, что приведенное тобой в [34] - черт-те откуда взятая галиматья.
Здесь тебе намекают, что ежели ты "пытал" Инди, то в твоих же интересах привести код, а не ту самую лог-галиматью
Elen (2006-09-13 13:44:00) [15]
> kirik
Это ты сам над собой издеваешся решая такие задачи таким способом, еще и не зная как этот способ применять. Заранее думай впредь. А пока так и оставь с тормозом до следующего апгрейда.
kirik (2006-09-13 13:41:00) [16]Сергей М.
Я думал, что здесь издеваться не будут. Оказалось, ошибся...
Сергей М. (2006-09-13 13:39:00) [17]
> kirik (13.09.06 13:34) [34]
> Технологию пытался сделать так:
Это хрень какая-то, а не "технология")
> некогда тут учиться, 3 дня до сдачи проекта
Прими мои соболезнования по поводу твоего скоропостижного увольнения.
Сети - это не два пальца об асфальт)
kirik (2006-09-13 13:35:00) [18]Elen некогда тут учиться, 3 дня до сдачи проекта
kirik (2006-09-13 13:34:00) [19]Сергей М. C Indy пытался разобраться но никак не могу понять. Технологию пытался сделать так:
192.168.1.175 > CONNECT 192.168.1.10
+CONNECT OK
192.168.1.175 > GET dblist.dat [номер записи] [размер данных]
+REQUEST ACCEPTED
sdlkgfsdkjfghkjdflhgjksdfhgjklserdgkndfgjldksfgberltgjebsdrfg <-- данные
+OK
+CONNECTION CLOSED
192.168.1.175 > CONNECT 192.168.1.10
+CONNECT OK
192.168.1.175 > POST dblist.dat [номер записи] [размер данных]
+REQUEST ACCEPTED
dfhgjkdfhgjkhdskjghlsfdhgksdhfgjklshdfgjkhdsfghsdfjkgjdffgf <-- данные
+OK
+CONNECTION CLOSED
Что нужно для реализации?
Elen (2006-09-13 13:30:00) [20]
> kirik
Не хочеш учиться А здря... БД на пустом месте не создавались. И твою проблему решилибы на раз-два