Компьютерный форум NoWa.cc

Компьютерный форум NoWa.cc (https://nowa.cc/index.php)
-   Delphi (https://nowa.cc/forumdisplay.php?f=300)
-   -   Pascal (https://nowa.cc/showthread.php?t=128965)

Fiesta_Life 18.11.2007 23:22

Pascal
 
пожалуйста,срочно!!!!!!помогите решить задачку (Pascal)
Пользователь вводит строку чисел через запятую например, -5,89,3.6,789,437,-7
записать эти числа в массив

booktiger 26.11.2007 18:08

Ответ: Pascal
 
На VB так, для Pascal принцип такой же

Код:

'глбальные переменные
Dim mass(50) As String
Public StartPosition As Long 'начальная позиция считывания строки
Public EndPosition As Long  'конечная позиция считывания строки
Dim i As Long  'индекс массива

Private Sub Form_Load()
'инициализация пер-х
 StartPosition = 1
 EndPosition = 1
 i = 0
End Sub

Private Sub TextBox1_Change()
  If Right(TextBox1.Text, 1) = "," Then 'считываем последнюю букву если она равна ","
 
    EndPosition = Len(TextBox1.Text) 'конечная позиция равна длинне строки
   
        'ф-ция MID() считывает символы начиная со StartPosition и длинной
        'равной EndPosition - StartPosition
    mass(i) = Mid(TextBox1.Text, StartPosition, EndPosition - StartPosition)
   
    i = i + 1 'увиличиваем приращение массива на 1
    StartPosition = EndPosition + 1 'начальная позиция равна конечной +1 для следующей итерации

  End If
End Sub

Private Sub Command1_Click()
'перебираем массив
 For i = 0 To UBound(mass) - 1
 Debug.Print mass(i)
 Next i
End Sub


DragonDr 13.05.2008 04:00

Ответ: Pascal
 
На VBA можно просто писать функцию Split
например Arr = Split("1,2,3,4,5", ",")

Добавлено через 3 минуты
А для Delphi используйте функцию
function ExtractStrings(Separators: TSysCharSet; WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;
делает все что нужно и результат возвращает в TString

stefanovs 15.05.2008 03:03

Ответ: Pascal
 
var
s: string;
a: array [0..100] of integer;
i: integer;
begin
readln(s);
i := 0;
while (s <> '') do begin
if (Pos(',', s) = 0) then begin
a[i] := StrToInt(s);
s := '';
end else begin
a[i] := Copy(s, 1, Pos(',', s)-1);
Delete(s, 1, Pos(',', s));
end;
Inc(i);
end;
end;

Paradoksov 01.06.2008 02:11

Ответ: Pascal
 
Цитата:

Сообщение от stefanovs (Сообщение 1664903)
a: array [0..100] of integer;

Цитата:

Сообщение от stefanovs (Сообщение 1664903)
a[i] := Copy(s, 1, Pos(',', s)-1);

Так не бывает.


Текущее время: 14:22. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Copyright ©2004 - 2026 NoWa.cc

Время генерации страницы 0.02616 секунды с 9 запросами