Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Length


Страницы:   1 2

Exile ©   (2006-07-19 14:25:00) 

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

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


StriderMan   (2006-07-19 18:04:00) [1]


> Exile   (19.07.06 17:50) [20]

понял.

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

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


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


> 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 17:02:00) [3]


> Exile   (19.07.06 16:51) [18]

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

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

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

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

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

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


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

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

begin
fori:=0 toMemo2.Lines.Count-1 do
begin
a:=Memo2.Lines[i];
t:=length(a);
forj:=1 tot 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 14:55:00) [5]


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

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


VitGun   (2006-07-19 14:53:00) [6]

StriderMan

property Lines: TStrings read FLines write SetLines;

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


StriderMan   (2006-07-19 14:42:00) [7]


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

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

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


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

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

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


cosinus   (2006-07-19 14:39:00) [9]


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

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


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

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


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

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


VitGun   (2006-07-19 14:36:00) [12]

StriderMan

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

Memo1.Lines.Strings[i][1]


Amoeba   (2006-07-19 14:36:00) [13]

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

for j:=1 to a do

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


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

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


> Exile   (19.07.06 14:25)  

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


StriderMan   (2006-07-19 14:33:00) [15]


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

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

Memo1.Lines[i][1]


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


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

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


Johnmen   (2006-07-19 14:32:00) [17]

а такое

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

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


Amoeba   (2006-07-19 14:31:00) [18]

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


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

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


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

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


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

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо