Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2009, 21:42   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию Как сделать разбор строк?

Еужно разобрать строку из файла типа:
"комманда-число"
или
"комманда-число-число.
Например программа должна строку
"TestCommand 10" разбирать получая саму комманду (String) и все цифры в строке(integer).
Как такое сделать?
Вадим Буренков вне форума Ответить с цитированием
Старый 26.06.2009, 22:14   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Я чет особо не понял задания, но а если просто создать массив или множество из цифр и букв, а в цикле перебирать строку и сравнивать посимвольно там допустим до пробела, что получилось команда или число.

P.S.Объяснил канешно плохо, но все же.........
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 26.06.2009, 22:23   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Как-нибудь так (на примере эдита):
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
str,command : string;
mas : array[1..100] of integer;
i,n,k,l : integer;

begin
str := Edit1.Text;
n := 0;
k := pos(' ',str);
command := copy(str,1,k-1);
repeat
 l := posex(' ',str,k+1);
 if l>0 then
  begin
  inc(n);
  mas[n] := StrToInt(copy(str,k,l-k));
  k := l;
  end;
until l<=0;
inc(n);
mas[n] := StrToInt(copy(str,k,length(str)));

ShowMessage('Command = '+command);
for i:=1 to n do
 ShowMessage('Number '+IntToStr(i)+' = '+IntToStr(mas[i]));

end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.06.2009, 22:53   #4
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Давайте сначала разберёмся со структурой фаила...

Команда-значение-знеачени-....-значение

Получается что после "Команды" может стоять несколько значений?
Куда далее пойдут эти значения?

На вскидку:

Код:
Var
    F : File;
    E : Byte;
    D : String;
    Count : Integer;

Begin
AssignFile(F, 'test.txt');

Reset(F, 1);
While Not Eof(F) Do
  Begin
    BlockRead(F, E, 1, Count);
    D := D + Chr(E);
    If E = 13 Then
      Begin
        ListBox1.Items.Add(D);
        // Сюда можно вставить цикл в котором идёт анализ строки
       // и отделения "Команды" от "Значений"
        D := '';
      End;
  End;
CloseFile(F);
Этот код построчно считает фаил (покрайней мере должен) и занесёт строки в LisBox..

Последний раз редактировалось Вавел из ГМТУ; 26.06.2009 в 22:58.
Вавел из ГМТУ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать фильтр столбцов (не строк)? jar76 Microsoft Office Excel 19 23.09.2014 11:34
Как сделать проверку строк в memo Neset Общие вопросы Delphi 2 26.02.2009 12:25
разбор текста Teksa Помощь студентам 1 10.11.2008 20:14
Не могу сделать очистку строк в таблице sergey113 Помощь студентам 28 14.09.2008 19:38
Как сделать, чтобы один элемент списка в ComboBox писался в несколько строк? Andr Общие вопросы Delphi 5 15.08.2007 22:24