powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск и копирование
15 сообщений из 15, страница 1 из 1
Поиск и копирование
    #38702738
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В текстбоксе идет следующий текст:

Код:

Content-Disposition: attachment
Content-Transfer-Encoding: base64

UEsDBBQAAAAIALeG2kQM2reAQgEAANECAAAgAD8Aja6i66kg4qWq4eKuouupIKSuquOspa3iICgz
KS50eHR1cDsAAcl6x/zQndC+0LLRi9C5INGC0LXQutGB0YLQvtCy0YvQuSDQtNC+0LrRg9C80LXQ
vdGCICgzKS50eHSVUktOwzAQ3SNxBxOxSISwRcNPrZsNsIZFNyxT2zQuThz8QY2qHoxTIG6BKhUE
XADnK4QIUjd+nnkzb2Y0g/cury8mtzdXIDGpiHZ3cIcspg4BwJoonhugFRl7iTH5ECEiKYPzB8tU
AYlMUf09FLFh2sC59iKM6rRKohQxhWDOSEKwBMQqLdUwlzwzTI1WrhxqAzBqKuOppEWJlD8CImKt
x95ULrxWMQkjrPM4i17eXz/e1uDp6ACjyuEkwjbKiuZXWYJHz1+b9acLxkjwv6lBPxX2U8c/KIyq
shi51reZYLDNBCf9vZz2U2f91Pk/E3TL3PepJDZlmQmgcosq/DubEcNl5gfLkvas8AKYcMr8YFQ5
3MrLoZyXCE7ufyeYhOsA5rFymn4AM7YoQQunMJGzmah1Vs0Dyqa6bjBqjwQ1d/sNUEsBAh8AFAAA
AAgAt4baRAzat4BCAQAA0QIAACAAYwAAAAAAAAAgAAAAAAAAAI2uouupIOKlquHirqLrqSCkrqrj
rKWt4iAoMykudHh0CgAgAAAAAAABABgAnCKHqz2RzwFFhzhNXpDPAUWHOE1ekM8BdXA7AAHJesf8
0J3QvtCy0YvQuSDRgtC10LrRgdGC0L7QstGL0Lkg0LTQvtC60YPQvNC10L3RgiAoMykudHh0UEsF
BgAAAAABAAEAsQAAAL8BAAAAAA==
------BfgYWoCd-qAZKBvhsgB3i1HAb:1406015299--


Содержимое текстбокса проверяется есть ли там именно эти две строки:

Content-Disposition: attachment
Content-Transfer-Encoding: base64

и если есть, то копируется в файл text.txt
все что идет после них включая "=="

как это реализовать?
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702748
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,
"==" - может и не оказаться)
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702775
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЕвгенийВ,
ну в общем до того как появится "----" имею ввиду.
как лучше это сделать?
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702796
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что конкретно-то непонятно?
Как использовать регулярки? Как написать регулярку? Как записать в текстовый файл?
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702834
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
как записывать в текстовый файл знаю.
как правильно выполнить проверку и записать определенную часть которую я указал?
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702844
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вам настоятельно не рекомендую САМОМУ разбирать части сообщения. Еще раз, воспользуйтесь какой-нибудь библиотекой для работы с почтой. Их много.

Если вы хотите самому, nо нужно понимать, что любая часть письма (как и само письмо в целом) состоят из двух элементов: заголовков и содержимым. При этом, заголовок и содержимое разделяются двумя \r\n. А части разделяются границей (см. boundary)
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702891
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,
ну я просто сейчас хочу "вытащить" оттуда base64 код вложения,поэтому ищу способ это сделать
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702904
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
два знака = в конце - это не признак окончания текста, это составные части base64 (пустые вставки до дополнения в 4 символа)

ищите от \r\n\r\n до --
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702905
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно наверное так
Код: c#
1.
2.
3.
4.
5.
6.
If (text.Contains("Content-Disposition: attachment") && text.Contains("Content-Transfer-Encoding: base64"))
{
    string[] str = text.Split('\r');
    if (str != null && str.Lenth > 1)
        MessageBox.Show(str[1].Trim());
}
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702926
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

Вот так он почему-то копирует тело письма полностью
[src vb]
Dim y As String = TextBox1.Text

Const y1 As String = "Content-Disposition: attachment"
Const y2 As String = "Content-Transfer-Encoding: base64"


If (y.IndexOf(y1) >= 0) And (y.IndexOf(y2) >= 0) Then

Dim ss As String = y1 & y2

y = Mid(y, ss.Length + 1)

IO.File.WriteAllText(base64_d, y)

End If
[/src vb]
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702954
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7
Код: c#
1.
If (text.Contains("Content-Disposition: attachment") && text.Contains("Content-Transfer-Encoding: base64"))


Не учтён регистр.


majhool001Вот так он почему-то копирует тело письма полностью
я в vb не силен совершенно. Но не вижу у вас моего алгоритма: "ищите от \r\n\r\n до --"
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702966
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
могу предложить такое извращение
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public string GetSubString(string str, string start_marker, string end_marker)
        {
            string substr = "";
            int start_index = str.IndexOf(start_marker) + start_marker.Length;
            if (string.IsNullOrEmpty(end_marker))
            {
                substr = str.Substring(start_index);
            }
            else
            {
                int stop_index = str.IndexOf(end_marker, start_index);
                substr = str.Substring(start_index, stop_index - start_index);
            }
            return substr;
        }



Код: c#
1.
GetSubString (text, ""Content-Disposition: attachment"", "whenever you want to stop");
...
Рейтинг: 0 / 0
Поиск и копирование
    #38702983
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... в сторонку:

...а через IMAP ничего парсить не надо ... просто обратиться к нужной части по номеру .. :)
...
Рейтинг: 0 / 0
Поиск и копирование
    #38703002
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таким регулярным выражением можно разобрать
"Content-Disposition: attachment\r\nContent-Transfer-Encoding: base64\r\n\r\n(?<base64>[A-Za-z0-9/+=]+)"
...
Рейтинг: 0 / 0
Поиск и копирование
    #38703027
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВтаким регулярным выражением можно разобрать
там еще могут быть name и filename

К тому же в Regex нужно включить опцию многострочности
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск и копирование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]