Click here to Skip to main content
15,884,099 members
Home / Discussions / C#
   

C#

 
GeneralRe: Filestreaming System.OutofMemoryException Pin
Sharonc78-Mar-12 9:45
Sharonc78-Mar-12 9:45 
AnswerRe: Filestreaming System.OutofMemoryException Pin
Luc Pattyn8-Mar-12 10:04
sitebuilderLuc Pattyn8-Mar-12 10:04 
GeneralRe: Filestreaming System.OutofMemoryException Pin
jschell9-Mar-12 5:32
jschell9-Mar-12 5:32 
AnswerRe: Filestreaming System.OutofMemoryException Pin
Bernhard Hiller8-Mar-12 22:01
Bernhard Hiller8-Mar-12 22:01 
GeneralRe: Filestreaming System.OutofMemoryException Pin
Sharonc79-Mar-12 3:23
Sharonc79-Mar-12 3:23 
AnswerRe: Filestreaming System.OutofMemoryException Pin
jschell9-Mar-12 5:36
jschell9-Mar-12 5:36 
QuestionSet position in file and read from position Pin
Mc_Topaz8-Mar-12 3:14
Mc_Topaz8-Mar-12 3:14 
AnswerRe: Set position in file and read from position Pin
OriginalGriff8-Mar-12 3:55
mveOriginalGriff8-Mar-12 3:55 
The reason it returns 16 is that that is the length of the file...


BaseStream.Position does not do what you want - you want to use the Seek method combined with the position of the character in the stream. So, there is good news and bad news:
Good news: The position is stored in StreamReader.charPos, and does exactly what you want.
Bad news: It's a private variable.

So, getting it and using it is a bit dodgy - you can do it via reflection, but then your code will rely on an undocumented feature, which could disappear at any time. If you want to go that route, there is an extension method which does it all for you here: http://www.daniweb.com/software-development/csharp/threads/35078/page2[^] The code is about 3/4 of the way down.

Not a good idea, to my mind. Instead, I would use a Binary Reader, and read the data directly, processing the lines for myself:
C#
BinaryReader br = new BinaryReader(File.OpenRead(@"D:\Temp\MyList.txt"));
int recordLength = 16;
for (int i = 0; i < 10; i++)
    {
    Console.WriteLine("{0}: {1} = {2}", i, br.BaseStream.Position, (char) br.ReadByte());
    }
Console.WriteLine();

Gives:
0: 0 = A
1: 1 = B
2: 2 = C
3: 3 = D
4: 4 = E
5: 5 = F
6: 6 = G
7: 7 = H
8: 8 = I
9: 9 = U

Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

AnswerRe: Set position in file and read from position Pin
PIEBALDconsult8-Mar-12 4:02
mvePIEBALDconsult8-Mar-12 4:02 
Questiondatagridview c# Pin
missoby8-Mar-12 3:11
missoby8-Mar-12 3:11 
AnswerRe: datagridview c# Pin
BobJanova8-Mar-12 3:22
BobJanova8-Mar-12 3:22 
GeneralRe: datagridview c# Pin
missoby8-Mar-12 3:35
missoby8-Mar-12 3:35 
GeneralRe: datagridview c# Pin
BobJanova8-Mar-12 3:44
BobJanova8-Mar-12 3:44 
GeneralRe: datagridview c# Pin
Caleb McElrath8-Mar-12 14:12
professionalCaleb McElrath8-Mar-12 14:12 
AnswerRe: datagridview c# Pin
PIEBALDconsult8-Mar-12 4:07
mvePIEBALDconsult8-Mar-12 4:07 
Questionimage proccessing Pin
mohammadhamid8-Mar-12 0:16
mohammadhamid8-Mar-12 0:16 
AnswerRe: image proccessing Pin
Abhinav S8-Mar-12 1:04
Abhinav S8-Mar-12 1:04 
AnswerRe: image proccessing Pin
Dave Kreskowiak8-Mar-12 3:23
mveDave Kreskowiak8-Mar-12 3:23 
Questionhow to communicate to usb port programically? Pin
neodeaths8-Mar-12 0:10
neodeaths8-Mar-12 0:10 
AnswerRe: how to communicate to usb port programically? Pin
Abhinav S8-Mar-12 0:16
Abhinav S8-Mar-12 0:16 
AnswerRe: how to communicate to usb port programically? Pin
Bernhard Hiller8-Mar-12 0:17
Bernhard Hiller8-Mar-12 0:17 
AnswerRe: how to communicate to usb port programically? Pin
Dave Kreskowiak8-Mar-12 3:20
mveDave Kreskowiak8-Mar-12 3:20 
QuestionSource Code Control shared Libraries/Assemblies Pin
Expert Coming7-Mar-12 20:08
Expert Coming7-Mar-12 20:08 
AnswerRe: Source Code Control shared Libraries/Assemblies Pin
PIEBALDconsult8-Mar-12 2:35
mvePIEBALDconsult8-Mar-12 2:35 
AnswerRe: Source Code Control shared Libraries/Assemblies Pin
BobJanova8-Mar-12 3:21
BobJanova8-Mar-12 3:21 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.