Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1158159223
darlock
2006-09-13 18:53
2006.10.15
Копирование тектса из одного TRichEdit-а в другой


1-1157484310
Sergioni
2006-09-05 23:25
2006.10.15
TwebBrowser


2-1159272126
flaxe
2006-09-26 16:02
2006.10.15
Комбинации символов


15-1158937103
GanibalLector
2006-09-22 18:58
2006.10.15
Insert startup disk i floppy drive and press F2 to run setup.


9-1137326026
ZeFiR
2006-01-15 14:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский