Главная страница
    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.048 c
10-1124082080
safo
2005-08-15 09:01
2006.10.15
Проблема с файлом Excel


11-1135681340
Flea
2005-12-27 14:02
2006.10.15
KOLGets ?


8-1142592661
Noby
2006-03-17 13:51
2006.10.15
Фильтры в DirectShow?


2-1159615368
AriCK
2006-09-30 15:22
2006.10.15
2 listbox


15-1159027855
alpha5
2006-09-23 20:10
2006.10.15
Не ставится компонент





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский