Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.044 c
6-1100034718
able
2004-11-10 00:11
2005.01.30
TServerSocket число соединений


4-1102487250
Рамиль
2004-12-08 09:27
2005.01.30
Можно как нибудь запустить службу с нужным приоритетом?


14-1105389929
palva
2005-01-10 23:45
2005.01.30
Наезд на авторов толстой книги


3-1103721736
Andrej
2004-12-22 16:22
2005.01.30
исключения в IB &amp; try...except


14-1104219850
Satur
2004-12-28 10:44
2005.01.30
Что это за новый оператор в Украине рекламируют?