Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.143.0.157] |
|
Сообщ.
#1
,
|
|
|
Массив типа:
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char ! 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Code for char " Нужно убрать часть с комментариями "// Code for char !" и записать массив в файл командой Print #1(эта часть работает) Не могу сообразить как в строковом массиве выкинуть часть строки с комментариями... Спасибо. |
Сообщ.
#2
,
|
|
|
Делаю так:
Substring1 = "" TMP2 = 1 For TMP1 = 1 To Len(Substring) - 1 If (Mid(Substring, TMP1, 1)) = "/" Then TMP2 = 0 End If If (Mid(Substring, TMP1, 1)) = vbCr Then TMP2 = 1 End If If (TMP2 = 1) Then Substring1 = Substring1 & Mid(Substring, TMP1, 1) End If Next Но при этом копируется только первая строка. Если инвертировать условие If (TMP2 = 0), то копируются только все коментарии. Почему так? вроде должно все работать. В строке If (Mid(Substring, TMP1, 1)) = vbCr вместо критерия vbCr ставил 12 и 13 - не помогает. |
Сообщ.
#3
,
|
|
|
На вскидку, может где ошибся:
dim s as string dim p as long nf1=freefile open "myinfile" for input as #nf1 nf2=freefile open "myoutfile" for input as #nf2 while not eof (nf1) line input #nf1, s p=instr(1,s,"//")-1 if p>0 then s=left(s,p) print #nf2, , s wend close #nf1 close #nf2 |
Сообщ.
#4
,
|
|
|
Да, с line input #nf1, s все хорошо получается. Забыл сказать что массив я получаю не из файла, а из буфера обмена ProcessString = Clipboard.GetText(vbCFText). Хотя идея просто создать промежуточный файл вполне годится. Спасибо.
вот рабочий код: Open "TMP.txt" For Output As #2 Print #2, Substring Close #2 Open "TMP.txt" For Input As #3 While Not EOF(3) Line Input #3, Substring1 TMP2 = InStr(1, Substring1, "//") - 1 If TMP2 > 0 Then Substring1 = Left(Substring1, TMP2) Print #1, , Substring1 Wend Close #3 Kill "TMP.txt" |