Розбиваємо рядок на слова

У першій частині я розповів, як можна розбити рядок на слова, числа загалом на підрядки, які знаходяться між пробілами в рядку. Так ось, як я вже казав, перший метод не зовсім швидкий і не зовсім стабільний. Тому я пишу про статтю проTParser - це клас, як я вже казав, призначений для розбору рядка на слова, цілісних даних, речових даних і багато іншого. Цей клас допоможе Вам розібрати математичний вираз і в потрібному порядку виконати його, звичайно не вийде «мего «-крутий вираз розібрати, але невеликі цілком.

  • TButton
  • TEdit
  • TListBox

Тут є ще одне але, те, щоTParser працює тільки з потоковими даними, тобто зTStream. Але проблеми в потокову змінну записати текст праці не складе, тому нам необхідно спочатку її створити, потім завантажити вTParser і почати працювати.

На подіюOnClick кнопки я написав наступний код

Як я й казав, створюється змінна потокова, потім обов'язково в її позиції необхідно встановити в 0. Далі ми створюємо нашTParser і при створенні завантажуємо в нього нашу потокову змінну. Далі в нас йде цикл,toEof - означає поки що не кінець потокової змінної.Token - це наші підрядки, які додаються доTListBox.NextToken - переходить до наступного підрядку.TokenString - це тип нашого підрядка, який ми додаємо. Цей приклад додає лише текстові підстрочки.

  • 111 hello 222

У результатіTListBox буде «hello «, якщо нам треба розбити рядок тільки на числа, то код буде наступним

Тобто з рядка

  • 111 hello222 333

Додатись111 222 333. Якщо необхідно розбити на всі підрядки, хоч там і слова і числа, то просто необхідно прибрати умову на перевірку вхідності в той чи інший підряд певного типу і код буде наступним

Як бачите швидкість при високих обсягах збільшитися для обробки цих даних, а при першому методі буде зовсім маленькою. Також коду набагато менше написано, що також є добре.