|
Тема
|
Char конверсия
|
|
Автор |
mit () |
Публикувано | 14.11.05 11:25 |
|
Как да конвертирам Char в String?
Искам да напиша нещо такова:
StrNew := StrNew + Chr(SymbolCode mod 256) + Chr(SymbolCode/256);
където StrNew е String, a SymbolCode e Byte
| |
|
Прави се точно така, както си го направил, но грешката ти е друга - не можеш да използваш делене (оператора '/'), а трябва да използваш целочислено делене (оператор div). Правилният израз е:
StrNew := StrNew + Chr(SymbolCode mod 256) + Chr(SymbolCode div 256);
Друг е въпроса, че този израз горе е абсолютно безсмислен. SymbolCode mod 256 винаги ще ти върне SymbolCode, а SymbolCode div 256 - винаги 0. Това е по простата причина, че byte може да е от 0 до 255.
По-добре кажи какво точно искаш да направиш и ще ти кажем как да стане!
| |
Тема
|
Re: Char конверсия
[re: mit]
|
|
Автор |
TRN () |
Публикувано | 14.11.05 13:25 |
|
Безсмислието на това е вярно, а за втората част може би искаш да използваш остатъка, който в случая трябва да е Chr(Round(Frac(SymbolCode/256))).Редактирано от TRN на 14.11.05 13:32.
| |
|
Това е част от опита ми да "конвертирам" код на VBScript в програма на Delphi.
А проблема е следния: искам да направя програма за Upload на файлове която да поддържа сертификати. Опитах с компонента TIEHTTP, www.badfan.com/delphi/tie_http_https.html но неуспешно.
| |
|
... като ти предложих да кажеш какво искаш да направиш
В смисъл какво точно искаш да постигнеш с този израз, а не като цяло каква програма пишеш
Така като гледам предполагам, че се опитваш в стринга да натрупаш шеснадесетичното представяне на някакви двоични данни. Прав ли съм?
Ако ще ги четеш байт по байт делителят ти трябва да е 16, а не 256. Ама пак не е съвсем това, което си написал. Ако искаш погледни в хелпа функцията IntToHex. Ако съм прав - това е нещото, което ти трябва.
Успех!
| |
Тема
|
Re: Char конверсия
[re: mit]
|
|
Автор |
TRN () |
Публикувано | 14.11.05 23:41 |
|
Разгледай , може да ти помогне да измислиш нещо.
| |
Тема
|
Re: Char конверсия
[re: TRN]
|
|
Автор |
Formal (незнаещ) |
Публикувано | 15.11.05 12:16 |
|
То и това не е съвсем така:
Round(Frac(x)) винаги е 0 или 1 и се получава съответно #0 или #1 в зависимост от това дали SymbolCode е <= 128 или не
| |
Тема
|
Re: Char конверсия
[re: Formal]
|
|
Автор |
TRN () |
Публикувано | 15.11.05 17:15 |
|
Да, напълно си прав.
Бях написал нещо много близко до това, което е написал andrew_nikoloff, но за да не се дублираме измислих тая глупост, а като се позамислих вече беше късно.
| |
|
|
|
|