Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Основной форум

Основной форум Сюда все проблемы связанные с программированием.

Ответ
 
Опции темы
Старый 20.02.2011, 11:29   #1
S_007
Нуждающийся
 
Аватар для S_007
 
Регистрация: 30.01.2011
Сообщений: 76
Написано одно полезное сообщение
(для 7 участников)
Запись строки в масив

Здравствуйте!
Var s:string;
data: array[1..7] of integer;

s:=’1234567’, как записать эту строку в массив, каждую цифру по отдельности, чтоб в data[1] было 1, в data[2] было 2, в data[3] было 3 и т.д.? Все перерыл не могу найти пример
(Offline)
 
Ответить с цитированием
Старый 20.02.2011, 12:17   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Запись строки в масив

Перевести символ в число можно так
Ord(GetChar(S,i))-48
Где S - исходная строка, i - номер символа.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
S_007 (20.02.2011)
Старый 20.02.2011, 12:18   #3
kizup
Нуждающийся
 
Аватар для kizup
 
Регистрация: 12.12.2010
Адрес: SaratoF
Сообщений: 85
Написано 5 полезных сообщений
(для 5 пользователей)
Ответ: Запись строки в масив

А как ты собираешься это сделать если у тебя массив чисел,а переменная строкового типа. Либо развивать парсить строку а потом пользоваться stringToInteger(s:string). Но мне кажется есть более простой способ через цикл
x:=1;
for i:=1 to 7 do
begin
data[i]:=x;
x:=x+1;
end;
Если че то не так поправьте
__________________
(Offline)
 
Ответить с цитированием
Старый 20.02.2011, 12:22   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Запись строки в масив

Сообщение от kizup Посмотреть сообщение
А как ты собираешься это сделать если у тебя массив чисел,а переменная строкового типа. Либо развивать парсить строку а потом пользоваться stringToInteger(s:string). Но мне кажется есть более простой способ через цикл
x:=1;
for i:=1 to 7 do
begin
data[i]:=x;
x:=x+1;
end;
Если че то не так поправьте
Жесть
Во первых, зачем заводить еще одну переменную и инкрементить ее, если уже есть счетчик цикла?
Ну и, как я понял, набор цифр может быть любой.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
S_007 (20.02.2011)
Старый 20.02.2011, 13:17   #5
S_007
Нуждающийся
 
Аватар для S_007
 
Регистрация: 30.01.2011
Сообщений: 76
Написано одно полезное сообщение
(для 7 участников)
Ответ: Запись строки в масив

ViNT благодарю!!! Подскажи еще, не пойму, где в моем коде косяк, если в строке s:=' 1234' перед цифрами не поставить пробел, или любой другой символ, пишет 234-48, где делась единица? А с пробелом 1234

Program Test;
Var s:string;
data: array[1..7] of integer;
i:integer;

Begin
s:=' 1234';
for i:=1 to 4 do
begin
data[i]:=Ord(GetChar(s,i))-48;
end;
DrawText(''+data[1]+data[2]+data[3]+data[4],0,0);
repaint;
Delay(5000);
End.
(Offline)
 
Ответить с цитированием
Старый 20.02.2011, 13:29   #6
baton4ik
Дэвелопер
 
Аватар для baton4ik
 
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений
(для 1,962 пользователей)
Ответ: Запись строки в масив

Строка - массив символов, начинается не с "1", а с нуля.

Замени
for i:=1 to 4 do
begin
data[i]:=Ord(GetChar(s,i))-48;
end;
на

for i:=0 to 3 do
begin
data[i+1]:=Ord(GetChar(s,i))-48;
end;
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
S_007 (20.02.2011)
Старый 20.02.2011, 14:05   #7
S_007
Нуждающийся
 
Аватар для S_007
 
Регистрация: 30.01.2011
Сообщений: 76
Написано одно полезное сообщение
(для 7 участников)
Ответ: Запись строки в масив

baton4ik Спасибо! Ты прав, теперь все работает ровно. ViNT, еще раз спасибо!
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:23.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com