Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Найти слово и вырезать всю строку Добавлено: 13.05.06 23:05  

Автор вопроса:  Ученик
На экзамен дали задачку, на vb.net нужно вот что сделать:
Есть текстовой файл, на форме есть текстовое поле, вводим туда искомое слово и программа ищет его в файле, после это вырезает ВСЮ СТРОКУ где находиться искомое слово, в файле оно может повторяться несколько раз, а значит вырезаем все строки где есть это слово, и сохраняем результат в файл.

Это трудно написать? помогите пожалуйста, сам я не знаю с чего начать даже!

Ответить

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

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



Вопросов: 5
Ответов: 18
 Профиль | | #1 Добавлено: 13.05.06 23:59
если б просто интересно было - сказал бы(и даже написал), а так - "На экзамен дали задачку.." - это уже платная услуга

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 14.05.06 01:49
На экзамен дали задачку

Говорила тебе мама.. учи,сынок, учи!! Так нет же, не послушался...
на vb.net нужно вот что сделать

Это в каком учебном заведении VB.NET преподают?
Это трудно написать?

Вовсе нет..
сам я не знаю с чего начать даже!

Это я тебе сейчас расскажу..
1.Считываешь из файла строки и получаешь массив строк
2.В цикле перебираешь посторочно этот массив и в каждой строке ищешь исходное слово.Если находишь,то у даляешь строку.
3.И то что осталось сохраняешь на диск
Вот, собственно, и все! Разве это сложно?

Ответить

Номер ответа: 3
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #3 Добавлено: 14.05.06 11:26
не тестировал
dim result as string
dim delstr as tring
delstr="delstr"
open "input.txt" for input as #1
line input #1,temp
if instr(temp,delstr)=0 then
result=result+temp
end if
close #1
open "output.txt" for output as #1
print #1,result
close #1

Ответить

Номер ответа: 4
Автор ответа:
 Ученик



Вопросов: 2
Ответов: 2
 Профиль | | #4 Добавлено: 14.05.06 11:39
Разве это сложно?
для меня да


Если находишь,то у даляешь строку.

Почему дуаляеш!? мне надо эту строку с исходным словом вырезать и сохранить в файл, я не знаю этот VB.NET, у нас был паскаль и дельфи, новый препод появился, месяц этот .NET препадавал...ну сделайте пример если не трудно :(

Ответить

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



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 14.05.06 15:26
astoro
а ты попробуй свой код на НЕТ протестить.. вот посмеешься! :-)

Ответить

Номер ответа: 6
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #6 Добавлено: 14.05.06 17:42

не пользуюс :-(

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 14.05.06 17:43
Эх, блин... на, двоечник, держи.. :-)

Imports System.IO
Imports Microsoft.VisualBasic.Interaction

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Const dialogTitle As String = "Find word"
        Dim filePath As String
        Dim Comparison As StringComparison = StringComparison.CurrentCulture
        Dim LinesIn, LinesOut As ArrayList

        With New OpenFileDialog
            .Title = "Какой файл читаем?"
            .Filter = "Текстовый файл (*.txt)|*.txt"
            .CheckFileExists = True
            .Multiselect = False
            .RestoreDirectory = True
            If .ShowDialog = Windows.Forms.DialogResult.Cancel Then .Dispose() : Return
            filePath = .FileName
            .Dispose()
        End With

        LinesIn = New ArrayList

        Try
            Dim sr As StreamReader = New StreamReader(filePath, True)
            Do While sr.Peek() >= 0
                LinesIn.Add(sr.ReadLine())
            Loop
            sr.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, dialogTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End Try

        If LinesIn.Count = 0 Then MessageBox.Show("File is empty", dialogTitle, _
                                MessageBoxButtons.OK, MessageBoxIcon.Information) : Return

        Dim seachWord As String = InputBox("Введите искомое слово ...", dialogTitle).Trim
        If seachWord.Length = 0 Then Return

        If MessageBox.Show("Учитывать регистр?", dialogTitle, _
                        MessageBoxButtons.YesNo, MessageBoxIcon.Question, _
                        MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then
            Comparison = StringComparison.CurrentCultureIgnoreCase
        End If

        LinesOut = New ArrayList
        For Each Line As String In LinesIn
            If Line.IndexOf(seachWord, Comparison) >= 0 Then LinesOut.Add(Line)
        Next
        If LinesOut.Count = 0 Then MessageBox.Show(seachWord & " not found.", dialogTitle, _
                                MessageBoxButtons.OK, MessageBoxIcon.Information) : Return

        MessageBox.Show("Найдено совпадений - " & LinesOut.Count, dialogTitle, _
                                MessageBoxButtons.OK, MessageBoxIcon.Information)

        With New SaveFileDialog
            .Title = "Куда будем сохранять?"
            .Filter = "Текстовый файл (*.txt)|*.txt"
            .OverwritePrompt = True
            .DefaultExt = "txt"
            .AddExtension = True
            .FileName = "Result"
            If .ShowDialog = Windows.Forms.DialogResult.Cancel Then .Dispose() : Return
            filePath = .FileName
            .Dispose()
        End With

        Try
            Dim sw As StreamWriter = New StreamWriter(filePath, False)
            For Each Line As String In LinesOut
                sw.WriteLine(Line)
            Next
            sw.Close()
        Catch ex As Exception
            MessageBox.Show(ex.Message, dialogTitle, MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try

    End Sub

End Class

Ответить

Номер ответа: 8
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #8 Добавлено: 14.05.06 17:48
хм... после этого я еще раз подумаю, стоит ли переходить на VB.Net.

Это ж надо, код в 15 строк меняется на кило плайн-текста..... :-/

Ответить

Номер ответа: 9
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #9 Добавлено: 14.05.06 18:27
astoro
прежде чем делать подобные завления, следовало бы внимательней взглянуть на код, и ты поймешь почему он такой длинный..
Выкинь оттуда диалоги чтения/сохранения, обработку ошибок,сообщения для юзера, возможность игнорировать регистр и посмотри что останется... А вот после этого я готов выслушать твое мнение относительно кода..

Ответить

Номер ответа: 10
Автор ответа:
 Ученик



Вопросов: 2
Ответов: 2
 Профиль | | #10 Добавлено: 14.05.06 18:32
EROS
ОГРОМНОЕ СПАСИБО!!! у меня нет слов!!!! побольше бы таких людей как ты! спасибо!!!!!!!!

Ответить

Номер ответа: 11
Автор ответа:
 astoro



ICQ: 649109 

Вопросов: 31
Ответов: 391
 Профиль | | #11 Добавлено: 14.05.06 19:17
2 EROS
ответ ты дал более чем развернутый.
видимо, для меня, не имеющего почти никакого понятия о .Нет, код показался громоздким, думаю, что из-за незнакомых конструкций. Дискуссию на эту тему вести не могу из-за недостатка знаний.

Сначала не обратил внимание на привзяку вопроса к форуму .NET. Прошу прощения. Ты молодец! :-)

Ответить

Страница: 1 |

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



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