![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Ребята! Помогите Двумерный массив запихать в строку и обратно, из строки в массив. Запихать вродебы как и не проблема а вот вытащить хз как
![]() У кого какие идеи? Код:
for i:=0 to 30 do for j:=0 to 30 do stroka:= stroka+','+massiv[j,i]; |
#2
|
||||
|
||||
![]() Если матрица квадратная, то не проблема, а вот если нет, то без знания размерности хотя-бы одной из сторон уже не получится.
Для вытаскивания вам надо либо самому парсить строку по запятой, либо воспользоваться классом TStringList который умеет это делать сам. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() я бы сделал так:
Код:
var i, j, x, s: Integer; t: TStringList; begin t:= TStringList.Create; t.Text:= StringReplace(stroka, ',', #13#10, [rfReplaceAll]); i:= 0; j:= 0; s:= Length(massiv[i]) + 1; for x := 1 to t.Count - 1 do begin if x mod s= 0 then begin s:= Length(massiv[i]) + 1; inc(i); i:= 0; end; massiv2[i,j]:= t[x]; inc(j); end; t.Free; end; |
#4
|
|||
|
|||
![]() Ребят! Спасибо вам конечно за то што откликнулись. С стринг листом это сделать реально, но мне нужно именно String. Я уже неделю бьюся ненаю чё делать. Массив Array[0..30,0..30] of string[1].
|
#5
|
||||
|
||||
![]() Значит надо парсить. Примерно так будет?
Код:
s := stroka + ','; i := 0; j := 0; while Pos(',', s) <> 0 do begin massiv[i,j] := Copy(s, 1, Pos(',', s)-1); Delete(s, 1, Pos(',', s)); Inc(i); if i > 30 then begin i := 0; Inc(j); end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
![]() Спасибо работает. Правдо смещает на одну позицию содержимое массива.
|