Главная страница
    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.041 c
15-1158676295
Unknown user
2006-09-19 18:31
2006.10.15
Интерполяция/аппроксимация алгоритмы


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


3-1155275966
rebroff
2006-08-11 09:59
2006.10.15
Загрузка фото из файла в blob-поле в run-time


2-1159194607
Ega23
2006-09-25 18:30
2006.10.15
Parent PopupMenu "автоматом" - возможено?


15-1158819323
Курдль
2006-09-21 10:15
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский