<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FFile_Stream%2FFile_MemoryStream</id>
		<title>Csharp/C Sharp/File Stream/File MemoryStream - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FFile_Stream%2FFile_MemoryStream"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/File_MemoryStream&amp;action=history"/>
		<updated>2026-04-30T01:26:13Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/File_MemoryStream&amp;diff=1298&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/File_MemoryStream&amp;diff=1298&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/File_MemoryStream&amp;diff=1299&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/File_Stream/File_MemoryStream&amp;diff=1299&amp;oldid=prev"/>
				<updated>2010-05-26T11:45:35Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Demonstrate MemoryStream==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C#: The Complete Reference &lt;br /&gt;
by Herbert Schildt &lt;br /&gt;
Publisher: Osborne/McGraw-Hill (March 8, 2002)&lt;br /&gt;
ISBN: 0072134852&lt;br /&gt;
*/&lt;br /&gt;
// Demonstrate MemoryStream. &lt;br /&gt;
 &lt;br /&gt;
using System; &lt;br /&gt;
using System.IO; &lt;br /&gt;
   &lt;br /&gt;
public class MemStrDemo {   &lt;br /&gt;
  public static void Main() {   &lt;br /&gt;
    byte[] storage = new byte[255]; &lt;br /&gt;
 &lt;br /&gt;
    // Create a memory-based stream. &lt;br /&gt;
    MemoryStream memstrm = new MemoryStream(storage); &lt;br /&gt;
 &lt;br /&gt;
    // Wrap memstrm in a reader and a writer. &lt;br /&gt;
    StreamWriter memwtr = new StreamWriter(memstrm); &lt;br /&gt;
    StreamReader memrdr = new StreamReader(memstrm); &lt;br /&gt;
 &lt;br /&gt;
    // Write to storage, through memwtr. &lt;br /&gt;
    for(int i=0; i &amp;lt; 10; i++) &lt;br /&gt;
       memwtr.WriteLine(&amp;quot;byte [&amp;quot; + i + &amp;quot;]: &amp;quot; + i); &lt;br /&gt;
 &lt;br /&gt;
    // put a period at the end &lt;br /&gt;
    memwtr.Write(&amp;quot;.&amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
    memwtr.Flush(); &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(&amp;quot;Reading from storage directly: &amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
    // Display contents of storage directly. &lt;br /&gt;
    foreach(char ch in storage) { &lt;br /&gt;
      if (ch == &amp;quot;.&amp;quot;) break; &lt;br /&gt;
      Console.Write(ch); &lt;br /&gt;
    } &lt;br /&gt;
 &lt;br /&gt;
    Console.WriteLine(&amp;quot;\nReading through memrdr: &amp;quot;); &lt;br /&gt;
 &lt;br /&gt;
    // Read from memstrm using the stream reader. &lt;br /&gt;
    memstrm.Seek(0, SeekOrigin.Begin); // reset file pointer  &lt;br /&gt;
 &lt;br /&gt;
    string str = memrdr.ReadLine(); &lt;br /&gt;
    while(str != null) { &lt;br /&gt;
      str = memrdr.ReadLine(); &lt;br /&gt;
      if(str.rupareTo(&amp;quot;.&amp;quot;) == 0) break; &lt;br /&gt;
      Console.WriteLine(str); &lt;br /&gt;
    }  &lt;br /&gt;
  &lt;br /&gt;
  }  &lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Demonstrates reading a file into memory, attaching it to a MemoryStream and using stream methods to access the contents==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
// MemStrm.cs -- Demonstrates reading a file into memory, attaching it to a&lt;br /&gt;
//               MemoryStream and using stream methods to access the contents&lt;br /&gt;
//&lt;br /&gt;
//               Compile this program with the following command line:&lt;br /&gt;
//                   C:&amp;gt;csc MemStrm.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
namespace nsStreams&lt;br /&gt;
{&lt;br /&gt;
    public class MemStrm&lt;br /&gt;
    {&lt;br /&gt;
        const string USA = &amp;quot;[USA]&amp;quot;;&lt;br /&gt;
        const string PhoneEntry = &amp;quot;Phone_number=&amp;quot;;&lt;br /&gt;
        static public void Main ()&lt;br /&gt;
        {&lt;br /&gt;
            FileStream cfg;&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                cfg = new FileStream (&amp;quot;./config.ini&amp;quot;,&lt;br /&gt;
                                      FileMode.Open,&lt;br /&gt;
                                      FileAccess.ReadWrite);&lt;br /&gt;
            }&lt;br /&gt;
            catch (FileNotFoundException)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine (&amp;quot;Cannot find ./config.ini&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            catch (Exception e)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine (e.Message);&lt;br /&gt;
                Console.WriteLine (&amp;quot;Cannot find ./config.ini&amp;quot;);&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            MemoryStream mem = new MemoryStream ((int) cfg.Length);&lt;br /&gt;
            cfg.Read (mem.GetBuffer(), 0, (int) cfg.Length);&lt;br /&gt;
            int pos = FindInBuffer (USA, 0, mem.GetBuffer());&lt;br /&gt;
            if (pos &amp;lt; 0)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine (&amp;quot;Could not find match in buffer&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                pos = FindInBuffer (PhoneEntry, pos, mem.GetBuffer());&lt;br /&gt;
                if (pos &amp;lt; 0)&lt;br /&gt;
                {&lt;br /&gt;
                    Console.WriteLine (&amp;quot;Could not find phone number&amp;quot;);&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    const string NewPhone = &amp;quot;1888555-9876&amp;quot;;&lt;br /&gt;
                    mem.Seek (pos + PhoneEntry.Length, SeekOrigin.Begin);&lt;br /&gt;
                    for (int x = 0; x &amp;lt; NewPhone.Length; ++x)&lt;br /&gt;
                    {&lt;br /&gt;
                          mem.WriteByte ((byte) NewPhone[x]);&lt;br /&gt;
                    }&lt;br /&gt;
                    cfg.SetLength (0);&lt;br /&gt;
                    cfg.Write (mem.GetBuffer(), 0,&lt;br /&gt;
                              (int) mem.GetBuffer().Length);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            cfg.Flush ();&lt;br /&gt;
            cfg.Close ();&lt;br /&gt;
            mem.Close ();&lt;br /&gt;
        }&lt;br /&gt;
//&lt;br /&gt;
// Find a string of characters in a buffer of type byte&lt;br /&gt;
        static int FindInBuffer (string ToFind, int start, byte [] buf)&lt;br /&gt;
        {&lt;br /&gt;
            for (int x = start; x &amp;lt; buf.Length; ++x)&lt;br /&gt;
            {&lt;br /&gt;
                if (buf[x] == (byte) ToFind[0])&lt;br /&gt;
                {&lt;br /&gt;
                    int y;&lt;br /&gt;
                    for (y = 1; y &amp;lt; ToFind.Length; ++y)&lt;br /&gt;
                    {&lt;br /&gt;
                        if ((x + y) &amp;gt;= buf.Length)&lt;br /&gt;
                            break;&lt;br /&gt;
                        if (buf[x + y] != (byte) ToFind[y])&lt;br /&gt;
                            break;&lt;br /&gt;
                    }&lt;br /&gt;
                    if (y == ToFind.Length)&lt;br /&gt;
                    {&lt;br /&gt;
                        return (x);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            return (-1);&lt;br /&gt;
        }&lt;br /&gt;
//&lt;br /&gt;
// Convert a buffer of type string to byte&lt;br /&gt;
        static void StringToByte (out byte [] b, string str)&lt;br /&gt;
        {&lt;br /&gt;
            b = new byte [str.Length];&lt;br /&gt;
            for (int x = 0; x &amp;lt; str.Length; ++x)&lt;br /&gt;
            {&lt;br /&gt;
                b[x] = (byte) str [x];&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
//&lt;br /&gt;
// Convert a buffer of type byte to a string&lt;br /&gt;
        static string ByteToString (byte [] b, int start)&lt;br /&gt;
        {&lt;br /&gt;
            string str = &amp;quot;&amp;quot;;&lt;br /&gt;
            for (int x = start; x &amp;lt; b.Length; ++x)&lt;br /&gt;
            {&lt;br /&gt;
                str += (char) b [x];&lt;br /&gt;
            }&lt;br /&gt;
            return (str);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
//File: config.ini&lt;br /&gt;
/*&lt;br /&gt;
[PROGRAM]&lt;br /&gt;
Program Directory=C:\TEMP\&lt;br /&gt;
Data Directory=&lt;br /&gt;
[DEFAULTS]&lt;br /&gt;
Phone_number=800-555-2345&lt;br /&gt;
Wallpaper=wallppr.bmp&lt;br /&gt;
sshow=default&lt;br /&gt;
[Modem]&lt;br /&gt;
Initialization String=ATX4L1&lt;br /&gt;
Dial Type=1&lt;br /&gt;
[Countries]&lt;br /&gt;
1=USA&lt;br /&gt;
2=Canada&lt;br /&gt;
3=United Kingdom&lt;br /&gt;
[USA]&lt;br /&gt;
Phone_number=1800555-1234&lt;br /&gt;
TOLLFREE=1&lt;br /&gt;
[Canada]&lt;br /&gt;
Phone_number=1800555-2345&lt;br /&gt;
TOLLFREE=1&lt;br /&gt;
[United Kingdom]&lt;br /&gt;
Phone_number=08009872345&lt;br /&gt;
TOLLFREE=1&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==illustrates use of MemoryStreams==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
 /*&lt;br /&gt;
  Example15_13.cs illustrates use of MemoryStreams&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.IO;&lt;br /&gt;
public class Example15_13 &lt;br /&gt;
{&lt;br /&gt;
  // SaveMemoryStream saves the MemoryStream as a file&lt;br /&gt;
  public static void SaveMemoryStream(&lt;br /&gt;
    MemoryStream ms, string FileName)&lt;br /&gt;
  {&lt;br /&gt;
    FileStream outStream = File.OpenWrite(FileName);&lt;br /&gt;
    ms.WriteTo(outStream);&lt;br /&gt;
    outStream.Flush();&lt;br /&gt;
    outStream.Close();&lt;br /&gt;
  }&lt;br /&gt;
    [STAThread]&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    // use an open file dialog to get a filename&lt;br /&gt;
    OpenFileDialog dlgOpen = new OpenFileDialog();&lt;br /&gt;
    dlgOpen.Title=&amp;quot;Select file to back up&amp;quot;;&lt;br /&gt;
    if (dlgOpen.ShowDialog() == DialogResult.OK)&lt;br /&gt;
    {&lt;br /&gt;
      // Read the file into a MemoryStream&lt;br /&gt;
      FileStream inStream = File.OpenRead(dlgOpen.FileName);&lt;br /&gt;
      MemoryStream storeStream = new MemoryStream();&lt;br /&gt;
      // copy all data from in to store&lt;br /&gt;
      storeStream.SetLength(inStream.Length);&lt;br /&gt;
      inStream.Read(storeStream.GetBuffer(), 0, (int)inStream.Length);&lt;br /&gt;
      // clean up&lt;br /&gt;
      storeStream.Flush();&lt;br /&gt;
      inStream.Close();&lt;br /&gt;
      // pass the store to a method to write it out&lt;br /&gt;
      SaveMemoryStream(storeStream, dlgOpen.FileName + &amp;quot;.bak&amp;quot;);&lt;br /&gt;
      storeStream.Close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>