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

Вниз

Проблема со 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.062 c
15-1158733932
Проггер
2006-09-20 10:32
2006.10.15
перенос D5


15-1158902293
buka
2006-09-22 09:18
2006.10.15
Может конечно и баян, но ссылка имхо полезная


1-1155142998
lexander
2006-08-09 21:03
2006.10.15
Вопрос по WebBrowser!!!


5-1141101752
FunkyByte
2006-02-28 07:42
2006.10.15
Прерывание работы конструктора


2-1159709499
RASkov
2006-10-01 17:31
2006.10.15
Sorry





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский