Главная страница
    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.047 c
1-1105700684
Dmitry_04
2005-01-14 14:04
2005.01.30
Как мне перевести свой тип в поток?


9-1097394792
mozg
2004-10-10 11:53
2005.01.30
Вывод спрайтов как одного


14-1105357402
stone
2005-01-10 14:43
2005.01.30
Материнская плата с Socket 370


3-1103802934
ShotGuN
2004-12-23 14:55
2005.01.30
Как добавить несколько строк одновременно?


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