Solved

Display TXT file in Textbox (Multiline)

Posted on 2010-11-24
6
429 Views
Last Modified: 2012-06-27
Need HELP to complete the following task: To display a  TXT file in multiline textbox (THIS IS DONE - See attached code), however now if text file is large (over 100 lines) I need to divide the file into pages, then show each page.  

SEE IMAGE for description and my code is attached. Again, I need help to complete the pages task.
 APPROX LAYOUT. See attached code - Default.aspx
<html xmlns="http://www.w3.org/1999/xhtml" >

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

	 	<!-- begin form table -->

		<table width="600" cellpadding="4" cellspacing="0" border="0">

		

		<tr>

		<td colspan="2" class="formTitle">File Content:<br />

		<table width="320" cellpadding="1" cellspacing="0">

		<tr>

			<td><asp:Button ID="btnTop" Text=" Top " runat="server" /></td>

			<td><asp:Button ID="btnPrevPage" Text="< Previous" runat="server" /></td>

			<td><asp:Button ID="btnNextPage" Text="Next >" runat="server" /> </td>

		</tr>

		</table>

		<asp:TextBox ID="txtFileContent" runat="server" Width="600" 

				Height="260" TextMode="MultiLine" ></asp:TextBox></td>

	</tr>

	</table>

    </div>

    </form>

</body>

</html>

Open in new window

Imports System.IO





Partial Public Class _Default

    Inherits System.Web.UI.Page



    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        txtFileContent.Text = GetContent("C:\TXTdir\sample_file.txt")

    End Sub

    Private Function GetContent(ByVal Path As String) As String

        Dim finalResult As String = String.Empty

        Dim maxLine As Integer = 15

        Dim reader As StreamReader = Nothing

        Dim line As String = String.Empty

        Dim sb As New StringBuilder()



        Try

            reader = GetFile(Path)

            If Not reader Is Nothing Then

                While (ReadLineValue(line, reader.ReadLine())) IsNot Nothing

                    sb.Append(line & vbCrLf)

                End While

                finalResult = sb.ToString()

                reader.Close()

                reader.Dispose()



            End If

        Catch ex As Exception

            ClientScript.RegisterStartupScript(Me.GetType, "", "<script language='javascript'>alert('" & ex.Message & "');</script>")

        End Try

        Return finalResult



    End Function

    Protected Sub btnNextPage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnNextPage.Click



    End Sub



    Protected Sub btnPrevPage_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnPrevPage.Click



    End Sub



    Protected Sub btnTop_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnTop.Click



    End Sub

    Public Function GetFile(ByVal Path As String) As StreamReader

        Dim fileReader As StreamReader = Nothing



        If File.Exists(Path) Then

            Dim input As New FileStream(Path, FileMode.Open)

            fileReader = New StreamReader(input)

        End If

        Return fileReader

    End Function



    Public Shared Function ReadLineValue(Of T)(ByRef target As T, ByVal value As T) As T

        target = value

        Return value

    End Function

End Class

Open in new window

0
Comment
Question by:smano
  • 4
  • 2
6 Comments
 
LVL 13

Expert Comment

by:Jesus Rodriguez
ID: 34207939
My suggestion is read the whole text and each line put it inside an array variable for example
Line(#Lines) then count the number of lines and do a cycle for showing and activating or counting the pagination on the textbox.

I'll modify your code and I will posted here
0
 
LVL 1

Author Comment

by:smano
ID: 34207970
Forgot to add the sample .TXT file   sample-file.txt
Per above code I createad TXTdir folder on C: and moved the file there. This is the path shown on page_load event when calling GetContent method

Also Either C# or VB.NET works for me...
0
 
LVL 1

Author Comment

by:smano
ID: 34207977
I would appreciate it!
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 13

Accepted Solution

by:
Jesus Rodriguez earned 500 total points
ID: 34208418
Here is your code my friend. I'm assuming that the text file alwasy will have more than 15 line if not you need to do a small variation.
Imports System.IO

Partial Class Default8

    Inherits System.Web.UI.Page

    Public I As Integer = 1

    Public finalResult(1000) As String

    Private StartPgCounter As New Integer

    Private EndPgCounter As New Integer





    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then

            btnNextPage.Enabled = False

            btnPrevPage.Enabled = False



            Session.Add("AmountofLines", GetContent("d:\sample.txt"))

            If Session("AmountofLines") > 15 Then

                btnNextPage.Enabled = True

                Dim k As Integer

                For k = 1 To 15

                    Me.txtFileContent.Text += Session("finalResult" & k) & vbCrLf

                Next

                Session.Add("StartPgCounter", 1)

                Session.Add("EndPgCounter", 15)

            Else

                btnNextPage.Enabled = False

            End If

        Else

        End If

    End Sub

    Public Function GetContent(ByVal Path As String) As Integer

        Try

            Dim oRead As System.IO.StreamReader

            oRead = File.OpenText(Path)

            While oRead.Peek <> -1

                Session.Add("finalResult" & I, oRead.ReadLine())

                I += 1

            End While

            oRead.Close()



        Catch ex As Exception

            ClientScript.RegisterStartupScript(Me.GetType, "", "<script language='javascript'>alert('" & ex.Message & "');</script>")

        End Try

        Return I

    End Function

    



    Protected Sub btnNextPage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNextPage.Click

        Me.Session("StartPgCounter") = Me.Session("EndPgCounter") + 1

        If Me.Session("StartPgCounter") > Session("AmountofLines") Then

            Me.Session("StartPgCounter") = Session("AmountofLines")

            btnNextPage.Enabled = False

        Else

            btnNextPage.Enabled = True

        End If

        Session("EndPgCounter") = Session("StartPgCounter") + 15

        If Me.Session("EndPgCounter") > Session("AmountofLines") Then

            Me.Session("EndPgCounter") = Session("AmountofLines")

            btnNextPage.Enabled = False

        Else

            btnPrevPage.Enabled = True

        End If

        Dim k As Integer

        Me.txtFileContent.Text = ""

        For k = Me.Session("StartPgCounter") To Me.Session("EndPgCounter")

            Me.txtFileContent.Text += Session("finalResult" & k) & vbCrLf

        Next



        If Me.Session("EndPgCounter") = Session("AmountofLines") Then

            btnNextPage.Enabled = False

        End If

    End Sub



    Protected Sub btnPrevPage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnPrevPage.Click

        Me.Session("StartPgCounter") = Me.Session("StartPgCounter") - 16

        If Me.Session("StartPgCounter") < 1 Then

            Me.Session("StartPgCounter") = 1

            btnPrevPage.Enabled = False

        Else

            btnPrevPage.Enabled = True

        End If

        Session("EndPgCounter") = Session("StartPgCounter") + 15

        If Me.Session("EndPgCounter") > Session("AmountofLines") Then

            Me.Session("EndPgCounter") = Session("AmountofLines")

            btnNextPage.Enabled = True

        Else

            btnPrevPage.Enabled = True

            btnNextPage.Enabled = True

        End If

        Dim k As Integer

        Me.txtFileContent.Text = ""

        For k = Me.Session("StartPgCounter") To Me.Session("EndPgCounter")

            Me.txtFileContent.Text += Session("finalResult" & k) & vbCrLf

        Next



        If Me.Session("StartPgCounter") = 1 Then

            btnPrevPage.Enabled = False

        End If

    End Sub



    Protected Sub btnTop_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnTop.Click



        btnNextPage.Enabled = True

        Me.txtFileContent.Text = ""

        Dim k As Integer

        For k = 1 To 15

            Me.txtFileContent.Text += Session("finalResult" & k) & vbCrLf

        Next

        Session.Add("StartPgCounter", 1)

        Session.Add("EndPgCounter", 15)

    End Sub

End Class

Open in new window

0
 
LVL 1

Author Comment

by:smano
ID: 34210142
Thanks! Had to leave early will get back to you asap. I quickly glanced and getting the idea.
HAPPY THANKSGIIVING!!!!
0
 
LVL 1

Author Comment

by:smano
ID: 34234407
Appreciate your HELP! Modified bunch of stuff but overall good idea! And holy Sessions, batman :-)
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Developer tools in browsers have been around for a while, yet they are still heavily underused by developers. Developers still fix html or CSS then refresh page to see effect, or they put alert or debugger in JavaScript and then try again and again …
Using SQL Scripts we can save all the SQL queries as files that we use very frequently on our database later point of time. This is one of the feature present under SQL Workshop in Oracle Application Express.
The viewer will learn how to dynamically set the form action using jQuery.
Wufoo.com provides powerful tools for surveying targeted groups, and utilizing data from completed surveys to find trends, discover areas of demand or customer expectation, and make business decisions on products or services.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now