![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Length
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.