Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2007, 20:52   #1
Chepa
Пользователь
 
Регистрация: 21.12.2006
Сообщений: 11
По умолчанию Перевод строки в матрицу

хелп, народ!!!
есть строка типа '1, 2, 3, 4, 5, 6' ну и так далее, требуется записать значения из строки(которые отгорожены запятой) в одномерный массив. Очень на Вас надеюсь...
Chepa вне форума Ответить с цитированием
Старый 17.01.2007, 21:58   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Запятой или запятой и пробелом (как в примере)?

Код:
Var I:Integer;
     A:Array[1..N] of String;
     S:String;
Begin
While Pos(',',S) <> 0 Do
Begin
Inc(I);
A[I]:=Copy(S,1,Pos(',',S)-1);
Delete(S,1,Pos(',',S));  // Это если только запятая, а если с пробелом, то
End;                     // Delete(S,1,Pos(',',S)+1);
Inc(I);
A[I]:=S;
End;
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 17.01.2007, 23:13   #3
Chepa
Пользователь
 
Регистрация: 21.12.2006
Сообщений: 11
По умолчанию

тока запятой, спс щас буду пробовать))
Chepa вне форума Ответить с цитированием
Старый 17.01.2007, 23:22   #4
Chepa
Пользователь
 
Регистрация: 21.12.2006
Сообщений: 11
По умолчанию

A[i]:=Copy(S,1,Pos(',',S)-1); в этой строчке ругается на несоответствие типов (( Аррей и Стринг((
таак с этим сам разобрался)))
Теперь другая ошибка: когда идйт второй круг, после прохода вышестоящей строчки выдаётся ошибка вида:
Проект хххх.ехе вызвал исключение класса EConvertError с сообщением "хх' is not a valid integer value'. Процесс остановлен.
Вот. Мож знаете что за фигня, а??

Последний раз редактировалось Chepa; 17.01.2007 в 23:37.
Chepa вне форума Ответить с цитированием
Старый 20.01.2007, 01:46   #5
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Странно, у меня и первой ошибки не было, все работает...
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 20.01.2007, 10:14   #6
Albenous
Helper
Форумчанин
 
Аватар для Albenous
 
Регистрация: 10.12.2006
Сообщений: 109
Радость

Цитата:
Сообщение от Chepa Посмотреть сообщение
Теперь другая ошибка: когда идйт второй круг, после прохода вышестоящей строчки выдаётся ошибка вида:
Проект хххх.ехе вызвал исключение класса EConvertError с сообщением "хх' is not a valid integer value'. Процесс остановлен.
Вот. Мож знаете что за фигня, а??
EConvertError - ошибка перевода из одного формата в другой.
т.е. ты где-то переменной одного типа присваивешь переменную другого типа. Я еще не рабирался где, ща поищу.
З.Ы. пример EConvertError можшо показать присвоив
Код:
 
Edit1.text:=a // a:integer;
Совет: Воспользуйся обработкой исключений
Код:
 
try
..........
except
или
Код:
 
try
.........
finaly
Глупых вопросов не бывает - бывают глупые ответы.
Albenous вне форума Ответить с цитированием
Старый 20.01.2007, 10:58   #7
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Пришли исходник
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 20.01.2007, 13:06   #8
Albenous
Helper
Форумчанин
 
Аватар для Albenous
 
Регистрация: 10.12.2006
Сообщений: 109
Вопрос

Цитата:
Сообщение от Speeker Посмотреть сообщение
Пришли исходник
Хотелось бы знать, это обращено ко мне или к автору темы?
Глупых вопросов не бывает - бывают глупые ответы.
Albenous вне форума Ответить с цитированием
Старый 21.01.2007, 18:48   #9
psyke
Пользователь
 
Аватар для psyke
 
Регистрация: 08.01.2007
Сообщений: 41
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
arr: array[0..254] of char;
i:byte;
S:String[255];
begin
S:=Edit1.Text;
for i:=0 to length(edit1.Text) do
delete(S,pos(',',s),1);
for i:=0 to length(S) do
arr[i]:=S[i];
Memo1.Lines.Add(arr);
end;

без исключений


Цитата:
Edit1.text:=a // a:integer;
а по моему, тебя на момент компиляции ещё пошлют

Последний раз редактировалось psyke; 21.01.2007 в 18:55.
psyke вне форума Ответить с цитированием
Старый 21.01.2007, 19:00   #10
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

Цитата:
Сообщение от psyke Посмотреть сообщение
procedure TForm1.Button1Click(Sender: TObject);
var
arr: array[0..254] of char;
i:byte;
S:String[255];
begin
S:=Edit1.Text;
for i:=0 to length(edit1.Text) do
delete(S,pos(',',s),1);
for i:=0 to length(S) do
arr[i]:=S[i];
Memo1.Lines.Add(arr);
end;

без исключений
Твой вариант вудет разбивать строку не на слова, разделенные запятой, а на символы. Т.е. ...,13,... он разобьет на 1 и 3.

Цитата:
а по моему, тебя на момент компиляции ещё пошлют
Там показывался пример ошибки. Будь внимательней.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из строки в число и обратно AsmBeginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 22.05.2010 18:49
Как убрать перевод строки? Biowulf86 Помощь студентам 2 25.03.2008 11:05
Задача на матрицу. Fest Помощь студентам 2 16.12.2007 05:54
Задачка на матрицу. Саня895 Помощь студентам 1 11.12.2007 08:45
Перевод строки в функцию кетчуп Помощь студентам 6 23.11.2007 17:04