powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как автоматизировать процесс восстановления загружаемого файла
14 сообщений из 14, страница 1 из 1
Как автоматизировать процесс восстановления загружаемого файла
    #38781087
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго Вам времени суток
Уважаемые господа.

При наличии Вашего времени прошу Вас помочь.

Есть текстовый файл данные с которого загружаются в программу.

CHECK 28 06/09/2014 11:56:32 0.23 0.00 0.00 1 1 Administrator
CHECK 28 06/09/2014 11:56:32 0.23 0.00 0.00 1 1 Administrator
CHECK 28 06/09/2014 11:56:32 0.23 0.00 0.00 1 1 Administrator

Все работает отлично, данные загружаются.

Но иногда происходит сбой в программе и данные в этот файл, при загрузке садятся с ошибкой (прошу обратить внимание на вторую строку).

CHECK 28 06/09/2014 11:56:32 0.23 0.00 0.00 1 1 Administrator
-------------------------------------------------------------CHECK 28 06/09/2014 11:56:32 0.23 0.00 0.00 1 1 Administrator
CHECK 28 06/09/2014 11:56:32 0.23 0.00 0.00 1 1 Administrator

Мне приходится открывать файл, удалять лишние пробелы и после уже загружать данные.

Подскажите пожалуйста как можно автоматизировать этот процесс.

пробовал так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Command1_Click()
Dim txt As String

Open "c:\Namik.txt" For Input As #1 
Do While Not EOF(1) 
Line Input #1, txt 

'While InStr(txt, "  ")
'txt = Replace(txt, "  ", " ")
'Wend

txt = Trim(txt)
Text1.Text = Text1.Text + txt + vbCrLf
Loop
Close #1

End Sub



Но так он удаляет мне все пробелы в начале каждой строки.

Как изменить код так чтобы, удалялись пробелы перед индентификатором CHECK ?

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38781092
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, Намик!

ситуацию нужно исправлять только в начале строки, как в Вашем примере, или она может возникнуть в середине строки тоже?
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38781094
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую Вас Shocker.Pro

Да только в начале строки.
(При обслуживании системы, пока возникали проблемы только в начале строки переде CHECK. Это ошибка, "смещение строки" происходит в момент когда данные с программы выгружаются в текстовый файл и в этот же момент происходит мерцание электричества.)

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38781139
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Namik,

...

len(txt)>0-ля


...))
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38781146
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1001 Благодарю Вас за ответ, но к сожалению я его не понял.
Прошу Вас пояснить.

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38781154
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
If Left$(Trim(txt),5)="CHECK" Then txt = Trim(txt)
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38781162
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Вас Shocker.Pro.
Всё работает.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub Command1_Click()
Dim txt As String

Open "c:\Namik.txt" For Input As #1 ' Îòêðûâàåì ôàéë 1.txt äëÿ ÷òåíèÿ
Do While Not EOF(1) ' Ôóíêöèÿ EOF(End Of File) ïðîâåðÿåò, äîñòèãíóò ëè êîíåö ôàéëà
Line Input #1, txt ' ×èòàåì ñòðîêó äàííûõ

'While InStr(txt, "  ")
'txt = Replace(txt, "  ", " ")
'Wend

'txt = LTrim(txt)

If Left$(Trim(txt), 5) = "CHECK" Then
txt = Trim(txt)
Text1.Text = Text1.Text + txt + vbCrLf
Else
Text1.Text = Text1.Text + txt + vbCrLf
End If

Loop
Close #1

End Sub



С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784177
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго Вам времени суток
Уважаемые господа
При наличии Вашего времени Прошу Вас подсказать.

Мне необходимо проверить количество входящих слов в строке.

Строка имеет вид:

CHECK 596 14/10/2014 08:22:55 5.00 0.00 0.00 1 1 Kassir 0

(Прошу обратить внимание что в строке 10 данных разделённые пробелами)

Указанный ниже код позволяет мне получать данные если я чётко пропишу все пробелы между словами.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub Command1_Click()
Dim a As String
a = Text1.Text
MsgBox Split(a, " ")(0)
MsgBox Split(a, " ")(1)
MsgBox Split(a, " ")(2)
MsgBox Split(a, " ")(3)
MsgBox Split(a, " ")(4)
MsgBox Split(a, " ")(5)
MsgBox Split(a, " ")(6)
MsgBox Split(a, " ")(7)
MsgBox Split(a, " ")(8)
MsgBox Split(a, " ")(9)
MsgBox Split(a, " ")(10)
MsgBox Split(a, " ")(11)
MsgBox Split(a, " ")(12)
MsgBox Split(a, " ")(13)
MsgBox Split(a, " ")(14)
MsgBox Split(a, " ")(15)
MsgBox Split(a, " ")(16)
MsgBox Split(a, " ")(17)

MsgBox Split(a, "N")(N)

End Sub



Однако пробелы между словами могут играть.
Изменять входящую строку, т.е. приводить все пробелы в строке к одному нельзя.

Прошу Вас подсказать как мне определить что данные в строке соответствуют заложенным параметрам. Т.е. в строке 10 "слов" программа говорит "Ok" если меньше "Ошибка"

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784279
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую, Намик.

Честно говоря, я не очень понял, что значит "играть" и что подразумевается под "словами".
Вы всегда можете проверить размер массива
Код: vbnet
1.
Ubound(Split(a))+1

но не очень понял то ли это, что вам нужно
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784332
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую Вас Shocker.Pro
Благодарю Вас за ответ.

Прошу Вас, посмотрите пожалуйста, вот строка:

CHECK 596 14/10/2014 08:22:55 5.00 0.00 0.00 1 1 Kassir 0

получаемые из неё данные = 10

0. CHECK
1. 596
2. 14/10/2014
3. 08:22:55
4. 5.00
5. 0.00
6. 0.00
7. 1
8. 1
9. Kassir
10. 0

Мне необходимо проверить входящую строку.
Если есть ли эти 10 слов/значений или нет.

Т.е. вот правильная строка CHECK 596 14/10/2014 08:22:55 5.00 0.00 0.00 1 1 Kassir 0
вот не правильная CHECK 14/10/2014 08:22:55 5.00 0.00 0.00 1 1 Kassir

(Прошу Вас обратить внимание что во втором, неправильном, варианте пропали два значения.)

Пробелы между "словами"/значениями могут быть больше или меньше. В связи с этим я затрудняюсь показывать конкретное количество пробелов между "словами".

С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784449
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут несколько путей:

1) можно предварительно удалить все задвоения пробелов в строке (либо Replace в цикле, либо собственным циклом по строке), потом Split+Ubound

2) можно сначала сделать Split, потом пройтись циклом по полученному массиву, в поиске непустых значений

3) можно подключить внешнюю библиотеку и проверить строку с помощью регулярного выражения (если образцовую строку можно формализовать)
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784577
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro Благодарю Вас.

Второй и третий варианты из Вашего списка подходят.

Прошу Вас подсказать как это реализовать.

С Уважением и Благодарностью

Намик
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784605
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim k() As String, i As Integer, Cnt As Integer
k = Split("CHECK       14/10/2014 08:22:55 5.00 0.00 0.00 1 1 Kassir")

Cnt = 0
For i = 0 To UBound(k)
  If k(i) <> "" Then Cnt = Cnt + 1
Next

MsgBox CStr(Cnt)
...
Рейтинг: 0 / 0
Как автоматизировать процесс восстановления загружаемого файла
    #38784719
Namik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Вас Shocker.Pro
По Вашему третьему варианту, спасибо за информацию, я нашёл доступные мне материалы в интернете, работаю с ними.


С Уважением и Благодарностью
Намик
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как автоматизировать процесс восстановления загружаемого файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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