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

Вниз

Length   Найти похожие ветки 

 
Exile   (2006-07-19 14:25) [0]

Доброго всем дня, подскажите пожалуйста как определить первый символ в строке при условии что он заранее не изветсен.
Делаю так:
begin
for i:=0 to Memo2.Lines.Count do
begin
c:=memo2.Lines[i];
a:=length(c);
for j:=0 to a do
begin
s:=length((i)j);
st:=st+chr(strtoint(s));
Memo1.Lines[0]:=(st);
end;
end;
end.

неполучилось, говорит несовместимый тип


 
Zeqfreed ©   (2006-07-19 14:27) [1]

> [0] Exile   (19.07.06 14:25)

Надо полагать, что вот здесь несовместимый тип?

> s:=length((i)j);


 
Exile   (2006-07-19 14:29) [2]

Извиняюсь забыл переменные указать:
var
c,st,t:string;
i,j,b,s,a:integer;
e:char;
procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=0 to Memo2.Lines.Count do
begin
c:=memo2.Lines[i];
a:=length(c);
for j:=0 to a do
begin
s:=length((i)j);
st:=st+chr(strtoint(s));
Memo1.Lines[0]:=(st);
end;
end;
end.


 
Amoeba ©   (2006-07-19 14:29) [3]

Глюкодром, а не код!


> s:=length((i)j);

А такое не будет даже компилироваться.


 
Amoeba ©   (2006-07-19 14:31) [4]

Для начала посмотри в справке описание ф-ии Length. Должно помочь.


 
Johnmen ©   (2006-07-19 14:32) [5]

а такое

>for i:=0 to Memo2.Lines.Count do
>begin
>c:=memo2.Lines[i];

даст гарантированный AV


 
Exile   (2006-07-19 14:32) [6]


> > s:=length((i)j);

про это я знаю, именно в этом и проблемма.
так можно как нибудь определить первый символ строки заранее его не зная?


 
StriderMan ©   (2006-07-19 14:33) [7]


> первый символ в строке при условии что он заранее не изветсен

если я правильно понял вопрос, то

Memo1.Lines[i][1]


 
cosinus ©   (2006-07-19 14:34) [8]

И index out bounds там вылезет...


> Exile   (19.07.06 14:25)  

Зачем писать столько коду, чтобы определить 1-й символ? Тебе что надо то конкретно?


 
Amoeba ©   (2006-07-19 14:36) [9]

Должно быть:
for i:=0 to Memo2.Lines.Count - 1;

for j:=1 to a do

индексация символов в строке начинается с 1.


 
VitGun ©   (2006-07-19 14:36) [10]

StriderMan

Почти угадал.

Memo1.Lines.Strings[i][1]


 
antonn ©   (2006-07-19 14:38) [11]

if length(memo.text)>0 then result:=memo.text[1];


 
antonn ©   (2006-07-19 14:39) [12]

antonn ©   (19.07.06 14:38) [11]
это для первой строки:)


 
cosinus ©   (2006-07-19 14:39) [13]


> Amoeba ©   (19.07.06 14:36) [9]

Вечная с этим путанница. По крайней мере у меня по первой была. Все с нуля до count-1, а тут с 1...


 
antonn ©   (2006-07-19 14:39) [14]

VitGun ©   (19.07.06 14:36) [10]
Почти угадал.
Memo1.Lines.Strings[i][1]

он не угадал, он знал


 
StriderMan ©   (2006-07-19 14:42) [15]


> VitGun ©   (19.07.06 14:36) [10]

property Strings[Index: Integer]: string; default;

ни о чем не говорит?


 
VitGun ©   (2006-07-19 14:53) [16]

StriderMan

property Lines: TStrings read FLines write SetLines;

ни о чем не говорит?


 
StriderMan ©   (2006-07-19 14:55) [17]


> VitGun ©   (19.07.06 14:53) [16]

я имел ввиду словечко default.


 
Exile   (2006-07-19 16:51) [18]

Все сделал , спасибо всем:
var
a,e,st:string;
i,t,j,b:integer;
s:char;

begin
for i:=0 to Memo2.Lines.Count-1 do
begin
a:=Memo2.Lines[i];
t:=length(a);
for j:=1 to t do
begin
s:=memo2.lines[i][j];
b:=ord(s);
st:=st+inttostr(b)+", ";
Memo1.Lines[0]:=(st);
end;
end;
end;
end;


 
StriderMan ©   (2006-07-19 17:02) [19]


> Exile   (19.07.06 16:51) [18]

долго вникал в код... асилил... вроде бы...

я так полагаю этот код выведет ASCII-кодывсех символов из Memo2.text.

Но это совсем не то что написано в заголовке темы!!!

> как определить первый символ в строке

при чем тут первый символ? зачем циклы с перебором?

ничего не понял короче.


 
Exile   (2006-07-19 17:50) [20]


> StriderMan ©   (19.07.06 17:02) [19]
>
>


> при чем тут первый символ? зачем циклы с перебором?
>
> ничего не понял короче.

все правильно просто мне на мыло пришло письмецо с интересным содержимым, а именно это был скирпт написанный в char
@ src="javascript:document.write(String.fromCharCode(и далее идет остальное тело проги но в char
вот я и решил перевести этот скрипт, потом решил написать прогу которая бы переводила текст из одного поля (memo2) и выводило тотже текст но уже в char в другое (memo1) и наоборот.
щас только вот встала другая проблемма при переводе из char в символы, если один код от другого отделять запятой то как дать цикл по строке, т.е. чтобы к примеру есть строка: 102,97,115,101
и к переменной i по очереди подстовлять 102 потом 97 и т.д.


 
StriderMan ©   (2006-07-19 18:04) [21]


> Exile   (19.07.06 17:50) [20]

понял.

можно загрузить строку с кодами символов (их я так понял вы называете словом "char") в TStringList у которого выставить delimeter := ",". тогда в каждой строке этого StringList"а будет код символа. потом пробежаться по строчкам и преобразовать

s := s + char(strToInt(StringList.Strings[i]));



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

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

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1150462592
blackcrazzy
2006-06-16 16:56
2006.08.06
Сайт Delphimaster.ru


15-1152171086
Nic
2006-07-06 11:31
2006.08.06
Скины в программе


2-1153426046
Ivolg
2006-07-21 00:07
2006.08.06
Курсор


2-1152879733
-=Germe$=-
2006-07-14 16:22
2006.08.06
Вопрос связан с перехватом времени


1-1150904746
NORDmen
2006-06-21 19:45
2006.08.06
регулярные выражения разбор строк





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