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

Вниз

Pchar To String   Найти похожие ветки 

 
user101   (2005-01-15 12:36) [0]

Необхотимо из PChar:=#10 Получить строку String:="#10"
Тоесть не значение PChar а два символа # и 10
Ткните пальцем как это сделать :(


 
MBo ©   (2005-01-15 12:44) [1]

пардон, а можно увидеть реальный код присвоения PChar?


 
user101   (2005-01-15 12:54) [2]

вот надо сделать так

if P1=#10#13 then BEGIN

t1:="всего "+CONVERT(P1);
//Вот нужно не конец строки получить а
t1:="всего #10#13"; тоесть просто строку с символами # 10 13

end;


 
GanibalLector ©   (2005-01-15 12:55) [3]

> а два символа # и 10
в [0] LOL.


 
MBo ©   (2005-01-15 13:07) [4]

Хорошо бы книжку почитать по Паскалю.
Там написано, что с помощью #10 обозначается ОДИН символ с кодом 10, да и много другого полезного.
А в теме хелпа Character strings есть полезные примеры.


 
user101   (2005-01-15 13:11) [5]

есть TempString: array[0..10] of Char ;

Смотрю в отладке массив
там такая фигня
TempString=[ #0,"a","b",#10,"q",#7,"d",#9,"s",#14]

в итоге мне нужна строка вся из массива
S:="#0ab#10q#7d#9S#14";


 
user101   (2005-01-15 13:13) [6]

что один символ с кодом 10 я прекрасно знаю

в том и суть что мне ну нужен этот символ
а все 3 нужны тобищь решетка  единичка и ноль.
вот :(


 
Poirot ©   (2005-01-15 13:14) [7]

LOL однозначный...
Ответь лучше на вопрос - ЗАЧЕМ?!?!
Просто так?! толк?!..
Отладчик показывает символы чере # ибо у них нету нормального символьного представления.. а так сделать можно очень просто...
Только вот я смеялся минут 15)))
низя так дедушку пугать (с)


 
user101   (2005-01-15 13:27) [8]

ну предложите вариант лучше
ситуация такая
есть
Буфер TStream в нем инфа #0ab#10q#7d#9S#14 вот как раз такого типа
всю эту беду я запихиваю TempString: array[0..10] of Char
вот и потом уже выбираю то что мне нужно от туда
а нужна мне вся строка #0ab#10q#7d#9S#14 вот такая


 
Poirot ©   (2005-01-15 13:32) [9]

Товарисч, давай так. Т ыопределись что у тябя где.. насколько вижу если у тя в стриме то, что ты показал, то как ты в массив её пихаешь?! у тя массив бюольше чем надо...
а во-вторых тебе не судьба тогда просто пройти по всей строке и если например Ord(TempString[i]) < $20 то прибавлять к результирующей строке не сам символ, а просто "#" + IntToStr(Ord(TempString[i])) - вот что-то так, а подробнее, что тебе надо - давай описывать учись, а то не только мне одному это не фига не понятно, как я вижу. Или у примерц весь код кидай. посмотрим.


 
Separator ©   (2005-01-15 13:42) [10]

Если нужна строка "#0ab#10q#7d#9S#14" то учти, что она не поместиться в TempString: array[0..10] of Char, так как имеет длину  в 17 символов, лучше пихай посимвольно: #0 + "ab" + #10 + "q" + #7 + "d" + #9 + "S + #14, тогда строка будет длиной в 10 символов


 
user101   (2005-01-15 13:42) [11]

ну ладно вот что пишу
Все конечно тупо :) но опыта пока у меня не много :)

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
 ABinding: TIdSocketHandle);
var
StringFormatedStream: TStringStream;
Result,s1: String ;
P1,P2:Char ;
TempString: array[0..1023] of Char ;
I:integer  ;
begin

StringFormatedStream := TStringStream.Create("");
StringFormatedStream.CopyFrom(AData, AData.Size);

for i:=0 to Adata.Size-1 do
begin
TempString[i]:= StringFormatedStream.DataString[i] ;
end;

result:="";
for i:=0 to Adata.Size-1 do
begin
P1 := (TempString[i]);
result:=result+ P1;
end;

memo1.Lines.Add(result);

StringFormatedStream.Free;

End;

в результате получаю в мемо кучу всяких не печатаемых символов
а хотелось бы получить символьное отображение.
не палочки всякие а что то типа #0#34fdsgdf#30 вот


 
Separator ©   (2005-01-15 13:52) [12]

var
 StringFormatedStream: TStringStream;
 Result, s1: String ;
 P1, P2:Char ;
 I: integer  ;
begin
 StringFormatedStream:= TStringStream.Create("");
 StringFormatedStream.CopyFrom(AData, AData.Size);

 result:= "";
 for i:= 0 to StringFormatedStream.Size - 1 do begin
   if Ord(StringFormatedStream.DataString[i]) < $20
     then Result:= Result + "#" + IntToStr(Ord(StringFormatedStream.DataString[i]))
     else Result:= Result + StringFormatedStream.DataString[i];

 memo1.Lines.Add(result);

StringFormatedStream.Free;

End;


 
Separator ©   (2005-01-15 13:54) [13]

Мда, убери еще всякие ненужные s1, p1 и p2


 
user101   (2005-01-15 14:04) [14]

Спасибо большое!
Теперь буду знать :)



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

Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.033 c
3-1104158542
Михаил2209
2004-12-27 17:42
2005.01.30
Вопрос Query выполняет запрос и показывает результат в DBGrid...


1-1106045945
ShimON
2005-01-18 13:59
2005.01.30
Шифрование паролей


14-1105348580
dimka.b
2005-01-10 12:16
2005.01.30
Смена профессии.


1-1105858601
DDDeN
2005-01-16 09:56
2005.01.30
Защита программного пакета


1-1106128654
Автор333
2005-01-19 12:57
2005.01.30
Месяц прописью?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский