1

У меня есть длинный текстовый файл с одной строкой в ​​формате EDI, и мне нужно найти способ читать и хранить только определенную часть файла. Внутри файла имеется несколько экземпляров «[НЕПРАВИЛЬНЫЙ ТЕКСТ] CLM * [NUMBER] * [UNWANTED TEXT]», и мне нужно ухватить эту [NUMBER] часть и сохранить ее + показать ее где-нибудь. Я смог использовать Streamreader для чтения всего файла и отображения его, но я в затруднении, как сузить его до тех частей, которые я хочу. Какие-либо предложения?выборочно читать, хранить текст в VB

Сейчас я работаю в VB.NET, но я бы хотел перейти на другой язык, если он предлагает более простой способ сделать это.

Благодарим за предоставленную помощь.

ответ

3

Вы можете определить шаблон с использованием регулярного выражения и найти нужное значение через классы Regex и MatchSystem.Text.RegularExpressions. Что-то, как это должно вам начать:

Imports System.Text.RegularExpressions 
Public Function getCLM(ediString as string) as string 

    Dim regex As New Regex("CLM\*(\d*\.?\d*)") 
    Dim match As Match = regex.Match(yourString) 
    If match.Success Then Return match.Value 
End Function 

Dim yourString as String = "" 
Dim clmNumber as string = getCLM(yourString) 

В этом случае, вы должны загрузить EDI строку в yourString. Вы можете увидеть, как я создаю регулярное выражение, используя что-то вроде Regex101

Предполагается, что ваша строка будет иметь только одно совпадение с этим шаблоном.

+0

Спасибо, это было очень полезно! Как я мог бы обрабатывать это по-другому, если бы захотел найти несколько совпадений (например, есть 4-5 строк CLM * [NUMBER] ", которые я хочу найти и отобразить? Я искал код, но не могу показаться найти способ заставить его находить/отображать все вместо первого совпадения. Мне кажется, мне нужно изменить логику «If match.Success Then Return match.Value», правильно? –

+0

Обязательно отметьте ответ как ответ, если он что в итоге решило вашу проблему! Добро пожаловать в Stack! –

Смежные вопросы