Рейтинг:
1
OriginalGriff
Вам нужно начать с более пристального изучения вашего текстового файла и выяснить, что отличает материал слева от материала справа. Если это всегда пробелы, а правая часть всегда начинается в одном столбце, то это просто задание подстроки, похожее на ту строку, которую вы показываете. Если это не так, то он становится более сложным, и вам нужно решить, как правильно его идентифицировать. Не просто предполагайте, что "он всегда начинается в столбце 40", потому что он показывает это в вашем текстовом редакторе - он может использовать вкладки, чтобы "переместить его поперек", и если это так, то подстрока не будет работать правильно.
Затем перестаньте читать текст в строке и считывайте его как строки:
string[] lines = File.ReadAllLines(@"D:\data.txt");
Затем используйте цикл для изучения каждой строки, пока не найдете одну, начинающуюся с "грузоотправитель/экспортер"
Затем вы можете обработать следующие строки, чтобы извлечь информацию об адресе, прежде чем продолжить просмотр, есть ли там еще экспортеры.
Member 13706320
Нет, на 1 странице нет грузоотправителя/экспортера. не могли бы вы дать мне краткую программу для этого, я могу попробовать, так что, пожалуйста, сделайте все необходимое.
OriginalGriff
Нет, это ваше домашнее задание - мы готовы помочь вам, но не делаем все это за вас!
Member 13706320
В любом случае, спасибо за ваши комментарии, я не хочу использовать int i для string.substring, чтобы разделить значения i, я прав.
я должен использовать условие цикла там прямо сейчас.
OriginalGriff
Не глядя на ваши фактические данные, я не могу сказать, но вам, вероятно, нужно и то, и другое: цикл для разделения нескольких строк и подстрок внутри этого цикла.
Member 13706320
каков способ показать вам мой файл так что пожалуйста помогите мне в этом я должен закончить эту работу как можно скорее
OriginalGriff
Какую часть фразы "Это твоя домашняя работа" ты не понял? :смеяться:
Начните с того, что внимательно посмотрите на него сами и посмотрите, сможете ли вы что-нибудь узнать.
И никогда не подчеркивайте срочность вашего домашнего задания: все хотят получить ответ быстро, а подчеркивая ваш, просто говорят: "у меня плохое управление временем, и я хочу, чтобы вы сделали это для меня до того, как он придет", - и это замедлит ответ, а не ускорит его.
Member 13706320
я все еще пытаюсь найти решение для этого я никогда не сдаюсь
OriginalGriff
Хорошо! :большой палец вверх:
Member 13706320
можете ли вы разместить здесь любую связанную ссылку на пример программы, по которой я могу проанализировать программу и сделать это сам..
OriginalGriff
Перестаньте искать того, кто сделает это за вас: вы ничему не научитесь должным образом, если не сделаете это сами.
Домашнее задание курса развития предназначено для того, чтобы заставить ваш мозг работать "по-разному", думая о проблемах и решениях, а не просто гуглить в поисках результата. Если вы не научитесь думать таким образом, вы никогда не будете хороши в этом деле, Честное слово.
Это не сложно - несколько минут тщательного обдумывания привели бы вас на 90% туда еще несколько часов назад!
Member 13706320
Спасибо за то, что вы меня ободряете ... я попробую это сделать
OriginalGriff
Это все, о чем мы просим!
Member 13706320
мне нужно уточнить с вами шаблон регулярных выражений для этой работы?
OriginalGriff
Даже не думайте о регулярном выражении для этого: не зная, что именно находится в файле, вы потратите много времени, пытаясь заставить его работать-и тогда он потерпит неудачу на вашем втором примере!
Member 13706320
хорошо, сэр, я все еще ищу решение
Member 13706320
Спокойной Ночи!
Member 13706320
невозможно получить значения подстрок, потому что во входном текстовом файле
Заголовок имя грузоотправителя/экспортера (2) в той же строке другое имя документ нет после следующей строки подстрочные значения грузоотправителя/экспортера в той же строке подстрока документа нет после так как же можно получить значение подстроки
OriginalGriff
Подумайте об этом. Что делает подстрока?
Как бы вы сделали это вручную?
Member 13707832
Чтобы найти одно значение подстроки мне нужно объявить три переменные
OriginalGriff
Какие именно? И что вы с ними делаете?
Member 13707832
Иам с использованием
Int I = текстовый индекс (“ shipperexporter”)
Int j = текстовый индекс ( “ shipperexporter(2) “) ;
Тогда только РАБОЧИЕ значения подстрок
OriginalGriff
Хорошо - давайте предположим, что это все промежутки между вещами.
Найдите первую строку: она начинается с "грузоотправитель/экспортер".
В этой строке найдите индекс "документа" и сохраните его.
В последующих строках извлеките подстроки между началом строки (индекс 0) и индексом "документа", который вы сохранили, минус 1.
Используйте Trim, чтобы удалить начальные и конечные пробелы.
Что у тебя осталось?
Member 13707832
Можете ли вы дать краткий программный код
OriginalGriff
Я отсылаю вас к началу нашего разговора:
Какую часть фразы "Это твоя домашняя работа" ты не понял? :смеяться:
Да ладно, это довольно тривиальная вещь!
Member 13707832
Я пытаюсь, но все еще на моем исходном коде
OriginalGriff
У вас там есть полная инструкция!
Это что - всего десять строк кода? Может быть, меньше?
Я дам тебе подсказку:
string[] lines = File.ReadAllLines(@"D:\Temp\TestData.txt");
bool searching = true;
int end = -1;
foreach (string line in lines)
{
if (searching)
{
Just 3 lines of code are needed here!
}
Console.WriteLine(line.Substring(0, end).Trim());
}
Объясните, что все это делает правильно на английском языке, и я дам вам еще одну строку кода! Договорились?
Member 13706320
str="грузоотправитель/экспортер"
INT I=0; I<length;I++
OriginalGriff
Нет. Давай - думай!
Первый-это утверждение "если". Как вы думаете, что он хочет проверить на thi9nk?
Member 13706320
документ № и значения
OriginalGriff
Так что пиши код ... ну же, я знаю, что ты умный, просто подумай.
Member 13706320
документа нет и экспортера эталонное значение я - Космос
Member 13706320
пожалуйста, предоставьте мне код
OriginalGriff
ОК. Первая строка из недостающих трех:
если (!линия.StartsWith("грузоотправитель/экспортер")) продолжить;
Вы не получите следующий в течение 24 часов, если не объясните, что делает весь код до сих пор. Когда вы должны сдать это дело?
Member 13706320
в следующей строке мне нужно рассчитать пространство от грузоотправителя/экспортера документ и справочник экспортеров
Member 13706320
Доброе Утро!
Member 13706320
1.я должен прочитать стоимость грузоотправителя/экспортера
2.я должен прочитать документ нет
3. я должен прочитать ссылку экспортера
4. я должен прочитать грузополучателя
5. я должен прочитать уведомление
6. у меня есть порт dishcarge
7. у меня есть порт загрузки и т. д.... Например, 15 или 20 имен заголовков, которые я хочу найти и прочитать из значений подстрок.
Входной файл put выглядит в том же формате, что и данные, которые я здесь не использовал
Member 13706320
Доброе Утро! Сэр
OriginalGriff
Доброе утро! Вы уже закончили его?
Member 13706320
нет, сэр, сделайте необходимое
OriginalGriff
Нет. Вы получаете еще одну линию примерно через 5 часов.
Member 13706320
я работаю на прогулке все еще не получаю должного пути
в моем кодировании он работает но не получает правильного выравнивания вот в чем проблема
Member 13706320
for (int i = lines.Count - 1; i >= 0; i--)
Member 13706320
эта концепция была правильной ?
OriginalGriff
Цикл for?
Нет.
Member 13706320
Хорошо, сэр, мне нужна ваша помощь в этом деле
Какой двигатель ОРЗ поможет извлечь из PDF в текст и извлекать для получения значений подстроки
OriginalGriff
зачем вам понадобилось распознавать PDF-файл? Вы преобразуете его в изображение?
Member 13706320
Я хочу, чтобы преобразовать в распознавания текста PDF в текст
После преобразования я хочу извлечь значение подстроки в OCR ENGINE его очень легко и просто я прав.
OriginalGriff
Распознавание никогда не бывает простым: а PDF - файл обычно состоит из текста-поэтому чтение PDF-файла как PDF-файла означает, что вы получаете доступ непосредственно к тексту без осложнений и ошибок, которые вводит распознавание текста.
Google для "PDF reader c#", и вы найдете множество способов сделать это.
Member 13706320
это платно или бесплатно ?сэр
OriginalGriff
По крайней мере, два из них должны быть здесь, так что они будут свободны. Существует также iTextSharp (free), который я использовал когда-то давным-давно (но не могу вспомнить sod - все об этом, я использую платный автономный продукт - Corel PDF Fusion-в тех редких случаях, когда мне приходится играть с PDF-файлами в наши дни.)
Member 13706320
хорошо, я проверю Corel PDF FUSION, могу ли я получить программный код.
OriginalGriff
Нет - это автономный продукт для просмотра и редактирования PDF-файлов, вы не можете получить исходный код. Я упомянул об этом, чтобы объяснить, почему я больше не использую iTextSharp - который является бесплатным и работает IIRC.
Member 13706320
хорошо , сэр, но не могли бы вы дать решение для этой подстроки экстракта
OriginalGriff
Следующая линия:
поиск = ложь;
Еще одна строка: 24 часа.
Member 13706320
string[] lines = файл.ReadAllLines(@"D:\Temp\TestData.txt");
булев поиск = истина;
инт конец = -1;
(строки по каждому элементу в линии)
{
если (поиск)
{
//Здесь нужно всего 3 строки кода!
если (!линия.StartsWith("грузоотправитель/экспортер")) продолжить;
Следующая строка:поиск = false;
}
Приставка.WriteLine(строка.Подстрока(0, конец).Отделка());
}
OriginalGriff
Все, что вам нужно сделать, это поставить их в нужное место! (то есть - смотреть, куда идут фигурные скобки)
Member 13706320
Доброе утро сэр
Member 13706320
Сэр пожалуйста добросердечно дайте мне код
OriginalGriff
Она у тебя уже есть!
Вы сами вчера написали последнюю строчку - это произвело на меня впечатление. Все, что вам нужно было сделать, это поставить их в нужное место.
<pre lang="cs> string[] lines = File.ReadAllLines(@"D:\Temp\TestData.txt");
булев поиск = истина;
инт конец = -1;
(строки по каждому элементу в линии)
{
если (поиск)
{
если (!линия.StartsWith("грузоотправитель/экспортер")) продолжить;
поиск = ложь;
конец = строка.IndexOf("документ№") - 1;
}
Приставка.WriteLine(строка.Подстрока(0, конец).Отделка());
}
Member 13706320
Спасибо, когда я запускаю эту программу, я не получаю вывод, я получаю пустой экран в консольном приложении
OriginalGriff
Тогда ваш файл данных не содержит того, что вы нам показываете - на что я сказал вам посмотреть очень внимательно в самом начале!
Member 13706320
когда я использую точку останова в могу видеть данные в то время но после того как в консольном приложении данные были пусты не получая вывода
OriginalGriff
Проверьте файл: он находится в том же самом месте?
Если это так, убедитесь, что версия вашего приложения, которое вы запускаете в консоли, совпадает с той, которую вы отлаживали - "релизные" версии не создаются автоматически при создании решения, вы должны специально создавать их.
Если он работает в отладчике, он должен работать в "производстве".
Member 13706320
сэр, могу ли я поделиться своей почтой здесь ping to my mail я поделюсь с вами своим текстовым файлом
OriginalGriff
Нет. Я уже получаю несколько сотен писем в день, и мне не нужно больше. :смеяться:
Поместите его в dropbox, и я посмотрю, есть ли у меня время, чтобы посмотреть на него.
Member 13706320
Сэр, не могли бы вы еще раз опубликовать весь программный код PLS? я могу попробовать это на моем c#
OriginalGriff
Он все еще там с 18 часов назад - просто посмотрите выше этого сообщения!
Member 13706320
я использую версию 4.5.1 C#
Member 13706320
Сэр, если я хочу опубликовать полный текст, в каком формате я должен это сделать..
OriginalGriff
Поместите файл в dropbox, так он вообще не будет "изменен".
Member 13706320
в таком формате будет выглядеть мой текстовый файл
Member 13706320
потому что я новичок в этом, если я копирую и мимо текстового файла вы можете увидеть точность?
Member 13706320
поэтому, пожалуйста, пришлите мне полный исходный код
Member 13706320
Доброе утро! я жду.
OriginalGriff
За что же?
Вчера у тебя был код!
Member 13706320
я пробую этот код на visual studio, он не работает, и я получаю пустой экран консольного приложения. поэтому, пожалуйста, пришлите полный код сюда, я могу попробовать его..
OriginalGriff
У вас есть код, который я использовал.
Либо ваши данные не похожи на образец, который вы дали - и я сказал вам внимательно посмотреть на это несколько дней назад - или вы не используете его правильно.
Используйте отладчик и посмотрите, что именно происходит во время выполнения кода.
Member 13706320
пожалуйста помогите мне с концепцией петли сэр
OriginalGriff
Если вы не собираетесь слушать то, что мы говорим, тогда нет никакого смысла в этой дискуссии.
Пожалуйста, вернитесь, когда вы будете готовы использовать отладчик и посмотрите на проблему должным образом. А до тех пор я больше ничего не могу сделать, так что всего хорошего.
Member 13706320
сэр не могли бы вы посмотреть мой текстовый формат который я только что обновил здесь
Member 13706320
когда я использую точку останова, она не читается до конца цикла.
OriginalGriff
А почему бы и нет? Что управляет циклом, и что находится в соответствующих переменных?
Member 13706320
я дал здесь петлю
если(поиск)
{
если (!линия.StartsWith("грузоотправитель/экспортер")) продолжить;
}
OriginalGriff
Это не петля.
Это часть того, что находится внутри петли.
И что, по словам отладчика, находится в переменных?
Member 13706320
я пытаюсь, но не работаю здесь
Member 13707832
Он не движется от следующей строки
OriginalGriff
- А что, по словам отладчика, находится в переменных?"
Вы уже посмотрели?
Member 13706320
Привет, сэр, Доброе утро!
Maciej Los
Можете ли вы вставить содержимое текстового файла в https://pastebin.com/? Затем разместите ссылку на него.
Member 13706320
https://pastebin.com/cHbyysNW
Maciej Los
Не размещайте спам!
Member 13706320
собственно как же тогда получить это от
OriginalGriff
Вы смотрели файл, который загрузили?
Пойди и посмотри ... внешность. Затем посмотрите на пример, с которого вы начали ... А потом скажите мне, где они вообще похожи.
Member 13706320
string[] lines = файл.ReadAllLines(@"E:\Exxon BL\Exxon BL\CMA\64C90E9451B70676E0530A0087616E94.txt");
булев поиск = истина;
инт конец = -1;
(строки по каждому элементу в линии)
{
если (поиск)
{
если (!линия.StartsWith("грузоотправитель/экспортер")) продолжить;
поиск = ложь;
конец = строка.IndexOf("документ№") - 1;
}
Приставка.WriteLine(строка.Подстрока(0, конец).Отделка());
Приставка.Прочитай();
}
OriginalGriff
Хватит валять дурака.
Файл, который вы загрузили, абсолютно не похож на приведенный вами пример, поэтому, если это действительно то, что вы обрабатываете, то нет никакого способа на Земле, чтобы вы могли разобрать его и извлечь информацию, которую вы ищете, потому что ее там вообще нет.
Нет, идите и загрузите файл, на который вы разместили ссылку, откройте его в блокноте и посмотрите на содержимое. Это то, что вы хотели опубликовать? Это то, что вы обрабатываете?
OriginalGriff
И как это должно выглядеть в сравнении с тем примером, который вы привели для начала? Вы вообще на него смотрели?
Member 13706320
когда я использую точку останова, она не переходит к следующей строке...
Member 13706320
в этом пути у меня есть мой входной текстовый файл..
OriginalGriff
Вниз.
Загрузка.
То.
Файл.
Смотреть на это.
Думать.
Member 13706320
если вы не мой, могу ли я поделиться своим идентификатором здесь, вы отправите тестовую почту на почту, я перешлю свой текстовый файл, пожалуйста, помогите мне в этом.
OriginalGriff
Нет.
Вы уже разместили его на pastebin, так что же заставляет вас думать, что отправка его мне по электронной почте изменит его?
Вы потрудились взглянуть на файл, который загрузили?
Member 13706320
Сэр, здесь я не публиковал полное выравнивание файлов, так что y я публикую здесь небольшой образец
OriginalGriff
Я просто уйду, потому что если я этого не сделаю, то начну ругаться на тебя, и это никому не поможет.
Member 13707832
Хорошо сэр