Розбиваємо рядок на слова
У першій частині я розповів, як можна розбити рядок на слова, числа загалом на підрядки, які знаходяться між пробілами в рядку. Так ось, як я вже казав, перший метод не зовсім швидкий і не зовсім стабільний. Тому я пишу про статтю про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. Якщо необхідно розбити на всі підрядки, хоч там і слова і числа, то просто необхідно прибрати умову на перевірку вхідності в той чи інший підряд певного типу і код буде наступним
Як бачите швидкість при високих обсягах збільшитися для обробки цих даних, а при першому методі буде зовсім маленькою. Також коду набагато менше написано, що також є добре.