Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
3-1148968997
barakuda
2006-05-30 10:03
2006.08.06
Настройки БатчМув


15-1152588760
vajo
2006-07-11 07:32
2006.08.06
50-терабайтные диски


2-1153295005
Илья С.
2006-07-19 11:43
2006.08.06
Вопрос по автозапуску


4-1145254631
Brother
2006-04-17 10:17
2006.08.06
Иконки рабочего стола


2-1153202972
vigo_
2006-07-18 10:09
2006.08.06
Вызов процедуры/функции из другого Unit