Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Про SetFilePointer... Добавлено: 31.01.05 17:17  

Автор вопроса:  Александр | ICQ: 204034 
Привет всем... Я делаю одну фишку к редактору, но мне надо добавить в
конец файла свой текст. Меня как-то не прикалывает открывать его по
Binary и считывать его текст, потом приплюсовывать к нему свой и
записывать файл снова. Тут я вспомнил про апиху SetFilePointer и хочу
спросить - лучше она пойдет или нет? Вдруг файл большой окажется и там
все равно нужно будет его читать? Или не париться и сделать простой Seek?
Или это вообще все одно и тоже и просто надо выбрать одно из двух?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #1 Добавлено: 31.01.05 18:16
SetFilePointer,hFile,NULL,NULL,FILE_END
WriteFile,hFile.... и т.д.

Только чтобы файл был открыт без overlapped

Ответить

Номер ответа: 2
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 31.01.05 18:22
может просто Open file for append as #fn ... ?

Ответить

Номер ответа: 3
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #3 Добавлено: 01.02.05 09:43
хм... что-то я забыл про это. :)
cresta, HACKER, пасиба, щас попробую

Ответить

Номер ответа: 4
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #4 Добавлено: 02.02.05 19:21
И еще - что это за... Есть менюха с индексом, MRU-List. Там при вызове
процедуры должен добавляться файл в ее новый элемент. Но при
выполнении этого кода ничего не добавляется... Где у меня ошибка,
подскажите, пожалуйста.

Public Sub AddToHistory(ByVal FileName As String)
    On Error Resume Next
    Dim inCounter As Long
    If CheckMenusPaths(FileName) Then Exit Sub
    If frmMain.mnuFileOpenLoadList(0).Tag <> vbNullString Then
        frmMain.mnuFileOpenLoadList(0).Enabled = True
        If frmMain.mnuFileOpenLoadList.UBound < 5 Then
            Load frmMain.mnuFileOpenLoadList(frmMain.mnuFileOpenLoadList.UBound + 1)
            frmMain.mnuFileOpenLoadList(frmMain.mnuFileOpenLoadList.UBound).Caption = Trim(Mid(FileName, InStrRev(FileName, "\";) + 1))
            frmMain.mnuFileOpenLoadList(frmMain.mnuFileOpenLoadList.UBound).Tag = FileName
        Else
            'MsgBox 1
            'For inCounter = frmMain.mnuFileOpenLoadList.LBound To frmMain.mnuFileOpenLoadList.UBound
            '    frmMain.mnuFileOpenLoadList(inCounter + 1).Caption = frmMain.mnuFileOpenLoadList(inCounter).Caption
            '    frmMain.mnuFileOpenLoadList(inCounter + 1).Tag = frmMain.mnuFileOpenLoadList(inCounter).Tag
            'Next inCounter
            'MsgBox CStr(inCounter) & " - " & CStr(inCounter + 1)
            'frmMain.mnuFileOpenLoadList(0).Caption = Trim(Mid(FileName, InStrRev(FileName, "\";) + 1))
            'frmMain.mnuFileOpenLoadList(0).Tag = FileName
            MsgBox "Больше чем 6 элементов истории файлов", vbInformation Or vbOKOnly, App.Title
        End If
    Else
        frmMain.mnuFileOpenLoadList(0).Enabled = True
        frmMain.mnuFileOpenLoadList(0).Caption = Trim(Mid(FileName, InStrRev(FileName, "\";) + 1))
        frmMain.mnuFileOpenLoadList(0).Tag = FileName
    End If
    Call FreeMenus
End Sub

Private Sub FreeMenus()
    On Error Resume Next
    Dim inCounter As Long
    For inCounter = frmMain.mnuFileOpenLoadList.LBound To frmMain.mnuFileOpenLoadList.UBound
        If (Not (Trim(frmMain.mnuFileOpenLoadList(inCounter).Tag) = vbNullString) And _
           ;(Not (Trim(frmMain.mnuFileOpenLoadList(inCounter).Caption) = vbNullString)) And _
           CBool(PathFileExists(Trim(frmMain.mnuFileOpenLoadList(inCounter).Tag)))) Then
            Unload frmMain.mnuFileOpenLoadList(inCounter)
        End If
    Next inCounter
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #5 Добавлено: 03.02.05 10:44
А ты попробуй закоментарить On Error Resume Next. Наверняка узнаешь в чем дело.

Ответить

Номер ответа: 6
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #6 Добавлено: 03.02.05 18:17
Тьфу, все в порядке. Все сделал. :)

Ответить

Номер ответа: 7
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #7 Добавлено: 07.02.05 10:25
И еще - или я глючу или vb. Почему выдается всякая фигня в RichTextBox по
вот этому коду (до msgbox выдается мой текст, а после него, рядом, его
копия):

Private Sub mnuEditPaste_Click()
    On Error Resume Next
    Dim mText As String, mStart As Long
    With cRich
        mStart = .SelStart
        mText = Clipboard.GetText(vbCFText)
        MsgBox Len(mText)
        .SelText = vbNullString
        .SelText = mText 'Mid(mText, Len(mText) / 2) - 1
    End With
End Sub

Мне надо снять форматирование с текста в буффере и вставить его в
текст только в _одном_ экземпляре, а не в двух как он делает. Способ от
sne не подходит (тот что в cRichEdit) - он также выдает.
Понимаю, это очень просто, но что-то в последнее время меня сильно
глючит... Наверное от того, что завтра выхожу с каникул. :))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам