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

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

как преобразовать строку string в массив символов char? [D7, Win2k]


ivak ©   (2008-11-16 18:30:00) 

Мне надо чтоб строка string превратилась в массив символов которые содержатся в этой строке.
Например:
a := 'Пирожок'
-> a : array[1..7] of char
причём a[1] := 'П'; a[2] := 'и'; a[3] := 'o' и т.д.


Германн   (2008-11-17 01:46:00) [1]

Предлагаю модераторам отныне закрывать обсуждение в ветках автора, пока не будет получено обоснованноеподтверждение, что автор последовал таки указаниям ясно изложенным в [2]!
Ибо таблицу умножения нужно твёрдо знатьпрежде чем приступать к изучению алгебры, геометрии, тригонометрии и иже с ними. (Про матан я уже молчу).
Пока не будет таких подтверждений вопросы автора почти ничем не отличаются от спама, имхо.

P.S. И почему на ДМ так часто лезут спрашивать то ли двоешники, то ли выпускники подготовительных групп детсадов?
:(
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1226867152&n=18


ivak   (2008-11-16 22:07:00) [2]

пасиба, понял


Тын-Дын   (2008-11-16 22:06:00) [3]


> но у меня ординал тип реквиред.. почему?

Ordinal types include integer, character, Boolean, enumerated, and subrange types. An ordinal type defines an ordered set of values in which each value except the first has a unique predecessor and each value except the last has a unique successor. Further, each value has an ordinality which determines the ordering of the type. In most cases, if a value has ordinality n, its predecessor has ordinality n – 1 and its successor has ordinality n + 1.

For integer types, the ordinality of a value is the value itself.
Subrange types maintain the ordinalities of their base types.
For other ordinal types, by default the first value has ordinality 0, the next value has ordinality 1, and so forth. The declaration of an enumerated type can explicitly override this default.


Юрий Зотов   (2008-11-16 22:05:00) [4]

> ivak ©   (16.11.08 21:59) [12]

Не хавает. И никогда не хавал. Всегда было "ординал тип реквиред".

А вот чары - хавает. Потому что чар - это ординал тип.


Andy BitOff   (2008-11-16 22:05:00) [5]

> ivak ©   (16.11.08 21:59) [12]

А что говорит справка по case?


ivak   (2008-11-16 21:59:00) [6]

ух ты я допёр...
тогда ещё вопрос..
хавает ли case стринги?
нас по информатике вроде учили что хавает..
но у меня ординал тип реквиред.. почему?


Германн   (2008-11-16 21:53:00) [7]


> а что вместо "..."??

Ничего!


Anatoly Podgoretsky   (2008-11-16 21:52:00) [8]

> KilkennyCat  (16.11.2008 21:50:08)  [8]

Можно было ограничиться и "пи"


ivak   (2008-11-16 21:51:00) [9]


> a : String;
> ...
> for i := 1 to n do begin


а что вместо "..."??
тут должна стоять какаято процедура которая забивает в массив столько чаров сколько символов в строке и каждому из чаров присваивает каждую итую букву строки. так вот какая процедура?


KilkennyCat   (2008-11-16 21:50:00) [10]

Теперь ждем вопрос для "Пирожное"


Германн   (2008-11-16 21:45:00) [11]


> ivak ©   (16.11.08 21:34) [5]

Ну и делай

var
 a : String;
...
for i := 1 to n do begin
a[i] := inc(a[i]);
memo2.text := memo2.text + a[i];
end;


tesseract   (2008-11-16 21:44:00) [12]


> и чтобы я мог уже делать всяческие операции с этим массивом.
>  например такие:


Строка и есть массив символов. Точнее динамический массив символов. Никаких дополнительных операций не надо. memo2.text:=memo2.text+mystring[i] точно сработает. Как и memo2.text:=memo2.text+mystring


ivak   (2008-11-16 21:34:00) [13]

не, вы не поняли..
мне надо чтобы строка  a : string превратилась в уже обьявленный мною массив massyve : array[1..n] of CHAR , где n - длина строки a
и чтобы я мог уже делать всяческие операции с этим массивом. например такие:

for i := 1 to n do begin
massyve[i] := inc(massyve[i]);
memo2.text := memo2.text + massyve[i];
end;


CodeMaster   (2008-11-16 21:12:00) [14]

А вот так будет лучше

> var
>    a : String;
>    i: Integer;
> begin
>    a := 'Пирожок';
>    for i:= 1 to Length(String) do
>    WriteLn(a[i]);
>  


palva   (2008-11-16 20:00:00) [15]

Расставьте точки с запятой и ваш код заработает.

{$APPTYPE CONSOLE}
var
   a : array[1..7] of char;
begin
   a := 'Пирожок';
   WriteLn(a[1]); // П
   WriteLn(a[2]); // и
   // и т. д.
end.


Юрий Зотов   (2008-11-16 19:25:00) [16]

> ivak ©   (16.11.08 18:30)  

> Мне надо чтоб строка string превратилась в массив символов которые
> содержатся в этой строке.

Вы ошибаетесь. Вам не ЭТО надо. Вам надо другое - почитать любую книжку по основам языка Паскаль.

Без шуток и без обид, вполне серьезно. Иначе, пока Вы ее не прочтете, подобные "вопросы" будут возникать ежедневно и помногу.


Германн   (2008-11-16 18:40:00) [17]


> Мне надо чтоб строка string превратилась в массив символов
> которые содержатся в этой строке.

Строка и так уже массив символов. Никаких "превращений" не требуется!


Наверх

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