Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];

Вниз

Подскажите по Delphi 2010...   Найти похожие ветки 

 
Knight ©   (2009-09-11 13:36) [0]

В D2006 при передаче файла по сети всё было нормально, поставил 2010, и не могу толку дать почему при сохранении MemoryStream (при отладке данные в него пишутся, вроде нормально) между всеми символами появляется код #0... т.е. в отладчике при записи в поток MZP.. а в файле после сохранения M(#0)Z(#0)P(#0)... Может что-то где-то отключить надо?


 
TIF ©   (2009-09-11 13:39) [1]

Unicode?


 
Ega23 ©   (2009-09-11 13:40) [2]

Потому что теперь строка - юникод.


 
Knight ©   (2009-09-11 13:43) [3]

А чё сделать?


 
Ega23 ©   (2009-09-11 13:44) [4]


> А чё сделать?


Не использовать string


 
Knight ©   (2009-09-11 13:47) [5]

А что вместо? :(


 
Ega23 ©   (2009-09-11 13:48) [6]

Не помню. Посмотри в хелпе.


 
Knight ©   (2009-09-11 13:49) [7]

Хелп не работает... просит переустановить :)


 
Romkin ©   (2009-09-11 13:50) [8]

ansistring


 
Knight ©   (2009-09-11 13:52) [9]

Т.е. везде где объявлены переменные String, всё изменить на ansistring?


 
TIF ©   (2009-09-11 13:53) [10]

> просит переустановить :)

Не обижай Help. Просит - помоги ему :0)

А вообще Unicode появился с D2009, так что надо копать материалы годичной давности, благо таких выше крыши


 
Anatoly Podgoretsky ©   (2009-09-11 13:54) [11]

> Knight  (11.09.2009 13:36:00)  [0]

Конечно надо отключить, нужно Ansi а у тебя Unicode.


 
TIF ©   (2009-09-11 13:56) [12]

> Т.е. везде где объявлены переменные String, всё изменить
> на ansistring?

Ну обычно этого достаточно, про остальные правки см. тут:
http://edn.embarcadero.com/article/38446
http://edn.embarcadero.com/article/38582
http://edn.embarcadero.com/article/38703


 
Knight ©   (2009-09-11 13:56) [13]

Нашёл, что с хелпом.. он теперь оказывается отдельно устанавливается %)


 
Anatoly Podgoretsky ©   (2009-09-11 14:06) [14]


> Хелп не работает... просит переустановить :)

Справка (Documentation) теперь устанавливается отдельно.
Только видимо тебе легче от этого особо не будет.


 
Anatoly Podgoretsky ©   (2009-09-11 14:08) [15]


> Т.е. везде где объявлены переменные String, всё изменить
> на ansistring?

Не везде, а только там где нужно и возможно, в некоторых местах можно сделать приведение.


 
Anatoly Podgoretsky ©   (2009-09-11 14:46) [16]


> TIF ©   (11.09.09 13:56) [12]

Проблемы не своим кодом, его всегда можно использовать, а проблемы с генофондом, многое переведно на Юникод не глядя, и теперь там где должен быть обязательно АНСИ, теперь идет Юникод, в первую очередь сетевые компоненты и функции, вплоть до ВинАПИ, большинство функций не имеют W варианта, а в генофонде идут объявления string/pchar и прочее
Вслед за сетевыми вещами этим грешат и некоторые компоненты, например в нехорошем был замечен FB - там например поля из базы вместо ftString (в базе varchar) сделаны ftWideString - по сути одно и тоже, что и ошибки в сетевых компоненетах. Это то, что замечено только мною, а у меня опыт общения минимальный. Реальность наверно хуже.


 
Knight ©   (2009-09-11 14:48) [17]

Р-р-р-р-р (рву на себе волосы)...

Пошёл назад в 2006. С этим потом разбираться буду :(


 
TUser ©   (2009-09-11 15:03) [18]

Неужели там нет какой-нибудь директивы на этот случай?


 
Anatoly Podgoretsky ©   (2009-09-11 15:13) [19]

> Knight  (11.09.2009 14:48:17)  [17]

Надо использовать работу с буферами, вместо строк, практически все компоненты имеют оба типа.
И хуже всего с INDY, c ICS порядок, автор везде заменил string на AnsiString и вроде проверил, что бы не было нереализованых W функций в NetAPI
Кстати автор очень оперативно реагирует на обращения пользователей, когда я пожаловался, что нет версии для Д2010 автор сразу сказал, что сделает и сделал уже к вечеру. У него продукт гибкий, весь увешаный IFами, до недавнего времени он поддерживал всю линейку от Д1 и выше, а сейчас минимум Д5

Ну а если все таки вернешься в Д2006, то можешь некоторое время не обращать на это внимание. И скажи, что за компоненты ты используешь?


 
Anatoly Podgoretsky ©   (2009-09-11 15:22) [20]


> Неужели там нет какой-нибудь директивы на этот случай?

Какую директиву ты ожидаешь, ну таки есть AnsiChar называется и производное от него AnsiString
Если ты имеешь в виду переключатель, типа $H-+, то такого вроде нет и смысл продукта в этом случае теряется, для этого есть продукты до Д2007


 
TIF ©   (2009-09-11 15:35) [21]

> Проблемы не своим кодом, его всегда можно использовать,
> а проблемы с генофондом

Гм. Правда что. Забыл, с чего началась тема:
> при передаче файла по сети


> многое переведено на Юникод не глядя

Да многое вообще не переведено, в том же Indy... :(


 
Knight ©   (2009-09-14 11:20) [22]


> И скажи, что за компоненты ты используешь?

TServerSocket  и TClientSocket


 
Anatoly Podgoretsky ©   (2009-09-14 11:32) [23]


> Knight ©   (14.09.09 11:20) [22]

Эти компоненты убраны из Дельфи начиная с версии 5 или ранее и обычно их специально устанавливают. Естественно они относятся к неподдерживаемым. Не знаю есть ли исходника, то неплохим методом будет правка исходников, это хоть и генофонд, но не поддерживаемый, поэтому этот метод в данном случае допустим.

Не знаю можно ли обойтись только приведением к AnsiString.

Альтернатива - это переход на другие компоненты, но только на что, Инди кривой по этой части, их тоже не переводили, да и вообще ситуация с Инди вообще странная, похоже их забросили, по крайней мере авторы точно, на сайте Nevrona нет никаких упоминаний об Инди, совсем нет. Демосы исчезли из Сети, есть только примеры к книге "Глубины Инди", а это не то.

Я недавно пробовал в Д2010 использовать снова Инди и в очередной раз исплевался. Но в ICS не было версии для Д2010, пришлось просить автора, он сделал, пока только в SVN, но к концу недели обещает выставить и на сайта. Вот это рабочее и примеров к компоненту гигантское множество, но зато документация хромает, что обычно норма для подобного.


 
Knight ©   (2009-09-14 12:03) [24]


> Anatoly Podgoretsky ©   (14.09.09 11:32) [23]

А где скачать ICS с примерами? Но торри без примеров, все ссылки на сайт(-ы) автора не грузятся. Где "оно сейчас можно найти"? В Full версии.. :)


 
Knight ©   (2009-09-14 12:13) [25]

http://www.overbyte.be
Таки загрузился... лежал наверно.


 
Anatoly Podgoretsky ©   (2009-09-14 13:58) [26]

> Knight  (14.09.2009 12:13:25)  [25]

Ну вижу уже нашел, теперь лезь в SVN и бери ICS7
Не смотри, что альфа у Пьетте все или альфа или бета, на самом деле есть успешные примеры создания Commercial Production Environment.
По поводу ICS5/ICS6 не уверен, что есть Unicode версии и под Д2010


 
Sapersky   (2009-09-14 14:02) [27]

Эти компоненты убраны из Дельфи начиная с версии 5 или ранее и обычно их специально устанавливают. Естественно они относятся к неподдерживаемым.

Начиная с 6 или 7, в 5-м ещё есть. Да и модуль ScktComp в любом случае остаётся. Если не использовать SendText/ReceiveText - никакой "крамолы" там вроде нет. Недавно портировал проект под D2009 - правка ScktComp не потребовалась, всё заработало и так (используются TServerWinSocket/TClientWinSocket).


 
TIF ©   (2009-09-14 20:31) [28]

> http://www.overbyte.be

Любопытный сайт, используется хитрая система фреймов.
15 минут пытался сохранить страничку с информацией про ICS из разных браузеров, ни один с этой задачей не справился. Пришлось скопипастить текст из IE во FrontPage...


 
Knight ©   (2009-09-16 09:35) [29]

Решил переделать на потоки, но что-то туплю %)

1) Есть TWinSocketStream... после WaitForData(1000) содержимое обнуляется или новый кусок данных пристыковывается к уже пришедшим? Т.е. если если пакет разбит, то можно ли подождать пока поступят все данные или надо постоянно считывать их во временный поток...

2) Как удалять из потока него полностью полученный пакет? (В строковом буфере делал Delete(Buff,1,PacketSize), а тут только Clear нашёл)


 
Knight ©   (2009-09-16 10:05) [30]

Удалено модератором
Примечание: Создание пустых сообщений


 
Knight ©   (2009-09-16 10:19) [31]

Неа... закрыли там обсуждение...
Вот что ответили.

--------
MBo ©   (16.09.09 10:00) [1]

>cодержимое обнуляется
нет

>Как удалять из потока него полностью полученный пакет?
не нужно. Прочитал раз, потом далее читаешь.

Knight ©   (16.09.09 10:02) [2]
А поток так и копится?
Или он при чтении сам обрезается?

Knight ©   (16.09.09 10:08) [4]
> >cодержимое обнуляется нет

Т.е. можно проверять Поток.Size и читать только когда накопиться сколько надо... так?


 
Knight ©   (2009-09-16 10:23) [32]

Удалено модератором
Примечание: Создание пустых сообщений


 
Knight ©   (2009-09-16 10:38) [33]

И ешё вопрос... почему MyStream.WaitForData(1000) даёт True, а MyStream.Size = 0 ?


 
Knight ©   (2009-09-16 11:25) [34]

Удалено модератором
Примечание: Создание пустых сообщений


 
Knight ©   (2009-09-16 12:41) [35]

Удалено модератором
Примечание: Создание пустых сообщений


 
Knight ©   (2009-09-16 13:33) [36]

Совет: Никогда не начинайте осваивать и пробовать, то с чем до этого не сталкивались, в рабочем проекте... иначе рискуете огрести граблей и затянуть время сдачи.

ЗЫ: оставьте хоть этот пост :)


 
Сергей М. ©   (2009-09-16 13:56) [37]


> после WaitForData(1000) содержимое обнуляется


Нет, ничего там не "обнуляется". И задача у метода WaitForData() совсем иная - ждать пока входящий поток пуст или пока не истечет заданное время.

Читать из вх.потока можно не больше чем в нем имеется на момент операции чтения. Все что успешно прочитано из потока тут же удаляется.


> Как удалять из потока него полностью полученный пакет?


см. выше


> можно ли подождать пока поступят все данные


Можно, если в этом есть смысл.


> почему MyStream.WaitForData(1000) даёт True, а MyStream. Size = 0 ?


Потому что TWinSocketStream не аккумулирует исходящий и входящий потоки данных.


 
Knight ©   (2009-09-16 15:31) [38]

Я уже всё переделал на строки... исходя из [36]
:)


 
TIF ©   (2009-09-29 01:55) [39]

Удалено модератором
Примечание: одна ветка - один вопрос, другой вопрос другая - ветка


 
Германн ©   (2009-09-29 02:05) [40]


> В чём проблема?

А ты послал Франсуа открытку?



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.11.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.006 c
3-1229664131
foriegn keys
2008-12-19 08:22
2009.11.22
ссылка таблицы самц на себя


2-1255147550
NGPOL
2009-10-10 08:05
2009.11.22
Виснет прога во время ExecSQL


1-1225857127
Krolm
2008-11-05 06:52
2009.11.22
Процедуры вылетают без ошибок


8-1200489157
NaRuTo
2008-01-16 16:12
2009.11.22
Преобразование времени


11-1208088580
Vitaly
2008-04-13 16:09
2009.11.22
Вызов формы из DLL на KOL в приложении на VCL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский