На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Помогите написать алгоритм обработки строк строкового массива , Нужно убрать часть строки и записать в файл
    Массив типа:

    ExpandedWrap disabled
      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(эта часть работает)
    Не могу сообразить как в строковом массиве выкинуть часть строки с комментариями...

    Спасибо.
      Делаю так:

      ExpandedWrap disabled
                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 - не помогает.
        На вскидку, может где ошибся:
        ExpandedWrap disabled
          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
          Да, с line input #nf1, s все хорошо получается. Забыл сказать что массив я получаю не из файла, а из буфера обмена ProcessString = Clipboard.GetText(vbCFText). Хотя идея просто создать промежуточный файл вполне годится. Спасибо.

          вот рабочий код:

          ExpandedWrap disabled
                    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"
          Сообщение отредактировано: Димон Безпарольный -
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0227 ]   [ 16 queries used ]   [ Generated: 19.04.24, 23:32 GMT ]