Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];
ВнизПроблема со string и integer - помогите новичку Найти похожие ветки
← →
Bug12 (2006-09-22 14:43) [0]В Memo несколько строк вида:
12 23
32 43
53 76
42 63
63 23
Т.е. в каждой строке - два каких-либо числа. Мне надо внести каждое это число в различные "колонки" двумерного массива, т.е. в Array[1,1] должно быть 12, в Array[1,3] должно быть 53, в Array[2,5] - 23, ну и так далее.
Делаю так:
for i:=0 to Memo1.Lines.Count do
begin
str := GetWord(Memo1.Lines[i], "", 1);
s1 := StrToInt(str);
str := GetWord(Memo1.Lines[i], "", 2);
s2 := StrToInt(str);
ArrStr[1,i] := s1;
ArrStr[2,i] := s2;
end;
</CDOE>
Функция GetWord (не моя), берущая определенное слово из строки:
function GetWord(Str, Smb: string; WordNmbr: Byte): string;
var
SWord: string;
StrLen, N: Byte;
begin
StrLen := SizeOf(Str);
N := 1;
while ((WordNmbr >= N) and (StrLen <> 0)) do
begin
StrLen := Pos(Smb, str);
if StrLen <> 0 then
begin
SWord := Copy(Str, 1, StrLen - 1);
Delete(Str, 1, StrLen);
Inc(N);
end
else
SWord := Str;
end;
if WordNmbr <= N then
Result := SWord
else
Result := "";
end;
</CDOE>
При вызове процедуры добавления почему-то вылетает ошибка "12 23 is not valid integer value", хотя строку в integer я конвертировал.
Помогите новичку, пожалуйста!
← →
stone © (2006-09-22 14:45) [1]
> При вызове процедуры добавления почему-то вылетает ошибка
> "12 23 is not valid integer value", хотя строку в integer
> я конвертировал.
"12 23 " <> "1223"
← →
DevilDevil © (2006-09-22 15:12) [2]В
GetWord
не вникаю, но попробуй так:for i:=0 to Memo1.Lines.Count-1 do // for i := 0 to Count-1
begin
str := GetWord(Memo1.Lines[i], #32, 1); // #32 - пробел = " " <> "" !!!
s1 := StrToInt(str);
str := GetWord(Memo1.Lines[i], #32, 2);
s2 := StrToInt(str);
ArrStr[1,i] := s1;
ArrStr[2,i] := s2;
end;
← →
DevilDevil © (2006-09-22 15:14) [3]ArrStr : array[1..2, 0..MAX_BUF_SIZE] of integer;
← →
Bug12 (2006-09-22 15:23) [4]Спасибо вам огромное - помогло!
← →
Bug12 (2006-09-22 15:49) [5]Еще один вопрос - как узнать номер минимального или максимального элемента в каждой из "колонок" моего многомерного массива?
← →
Сергей М. © (2006-09-22 15:52) [6]
> Bug12 (22.09.06 15:49) [5]
Смотря как ты объявил свой многомерный массив ..
← →
Bug12 (2006-09-22 15:57) [7]
ArrStr: array[0..4, 0..4] of integer;
← →
Bug12 (2006-09-22 15:58) [8]Т.е. в каждой "колонке" - до пяти элементов
← →
Bug12 (2006-09-22 18:00) [9]Неужели никто не ответит?
← →
IceBeerg © (2006-09-22 18:20) [10]Bug12 (22.09.06 18:00) [9]
Никто. Циклами сравнивая первый элемен каждого столбца с полседующим и при каждом меньшем отлавливание номера элемента, как пройдеш весть столбец получиш номер наименьшего элемента. Думай. Ко не сложный но муторный писать за тебя его никто не станет.
← →
DevilDevil © (2006-09-25 17:32) [11]Не совсем вопрос понял, если честно, но...
допустим у тебя массив из пяти элементов: ArrStr: array[0..4] of integer;
Находишь индексы так:var
MinInd, MaxInd : integer;
begin
MinInd := 0;
MaxInd := 0;
for i := 0 to 4 do
begin
if ArrStr[i] > ArrStr[MaxInd] then MaxInd := i;
if ArrStr[i] < ArrStr[MinInd] then MinInd := i;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.042 c