Using String.Split will work fine as long as your line isn't that
long.  If you've got a huge textfile with a single line, but dozens or
hundreds of megabytes worth of data, using that method will get you in
trouble.

I'd go with something like the following - clean it up and modify it
as appropriate for your needs, including necessary error handling,
etc...

private static string ReadToDelimiter(StreamReader streamReader, char
delimiter)
{
  StringBuilder result = null;
  char c = (char)streamReader.Read();
  while ((!streamReader.EndOfStream) && (c != delimiter))
  {
    if (result == null)
    {
      result = new StringBuilder();
    }
    result.Append(c);
    c = (char)streamReader.Read();
  }
  return (result != null) ? result.ToString() : null;
}

To call your code, you can do something like:
StreamReader reader = new StreamReader(@"C:\myfile.txt");
string textLine = ReadToDelimiter(reader, '@');
while (textLine != null)
{
  Console.WriteLine(textLine);
  textLine = ReadToDelimiter(reader, '@');
}


On Dec 9, 8:24 am, "Kaarthik Padmanabhan" <[EMAIL PROTECTED]>
wrote:
> aah..forgot to replace the path param passed in:
> Initialize the StreamReader as follows:
> sr = New System.IO.StreamReader(path) instead of the hard-coded dummy path
> used.
>
> On Tue, Dec 9, 2008 at 8:51 PM, Kaarthik Padmanabhan
> <[EMAIL PROTECTED]>wrote:
>
>
>
> > Hi,
> > See if this helps:
>
> >     Private Function GetDelimitedString(ByVal path As String) As List(Of
> > String)
> >         Dim sr As System.IO.StreamReader
> >         Dim contentStr As String = String.Empty
> >         Dim delimitedStringList As New List(Of String)
>
> >         sr = New System.IO.StreamReader("C:\DelimitedTextFile.txt")
> >         sr.ReadLine()
> >         contentStr = sr.ReadToEnd()
>
> >         If Not String.IsNullOrEmpty(contentStr) Then
> >             For Each delimitedStr As String In contentStr.Split("@")
> >                 delimitedStringList.Add(delimitedStr)
> >             Next
> >         End If
>
> >         Return delimitedStringList
> >     End Function
>
> > Regards,
> > Kaarthik
>
> > On Tue, Dec 9, 2008 at 3:27 PM, Clyde <[EMAIL PROTECTED]> wrote:
>
> >> Hello,
> >>  I have a txt file whose lines are separated by a delimiter "@".
> >> How can I read the file line by line using "streamreader"?
> >> Plz reply asap.
> >> Thanx,
> >> Clyde
>
> > --
> > Kaarthik,
> >http://coding-passion.blogspot.com
>
> --
> Kaarthik,http://coding-passion.blogspot.com

Reply via email to