Главная страница
    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.039 c
14-1105553691
GanibalLector
2005-01-12 21:14
2005.01.30
Открытое письмо болельщиков ФК "Металлист"


14-1105345156
syte_ser78
2005-01-10 11:19
2005.01.30
За что????


14-1105636003
Chuvak
2005-01-13 20:06
2005.01.30
Logo for Win


14-1103796619
Григорьев Антон
2004-12-23 13:10
2005.01.30
Коллеги, покритикуйте мою программу


8-1097952875
clampo
2004-10-16 22:54
2005.01.30
PaintBox





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