singlepost

Помогите с C# << На главную или назад  

Доброго времени суток,комрады и комрадки!!как всегда обращаюсь только к любимому комьюнити,ибо здесь все очень добры и много знают в кодинге)вот возникла очередная проблема,надеюсь,вы мне поможете!но сначала лирическое отступление….

примерно 2 года назад я пошел на программирование…эх,это было хорошее время,время,когда я не знал границ и рамок,я учил и учился,упорным трудом завоевывая все новые и новые знания….это был прекрасный период,и вот в один момент мне понадобилось нечто большее для программы….

Вот закончилось лирическое отступление.Вот в чем суть вопроса.В Вижуал Бейсике был такой оператор Write(в Visual Baisic 6.0) и WriteFile(в Visual Baisic 2008)-его суть заключалась в том,что грубо говоря,можно было запистаь значение любой переменной в файл,и потом его же прочитать при помощи оператора Read

например

WriteFile(1,Variable)

в файл под индексом 1(это такая особенность бейсика,там каждому открытому файлу надо повесить индекс типа short) записывается любая переменная стандартного типа(int,boolean,string)

потом командой Read можно было прочитать значение переменной и грубо говоря присвоить ей его

ReadFile(1,Variable)

у меня следующий вопрос по Шарпу-можно ли воплотить подобное в нем,если ли какие либо похожие операторы,если нету-то пажалуста,очень прошу,не могли бы вы продемонстрировать код,который выполнял бы похожее действие и немного его объяснить соотвественно!! буду очень признателен,так как вы всегда мне помогали-надеюсь,поможете и сейчас!огромное вам спасибо заранее!!

30 ответов в теме “Помогите с C#”

  1. 15
    Денис Горячёв ответил:

    блин,народ..спасибо вам канеш большое,но это все не совсем то…..я уже описывал много раз,что я хочу,но вы не совсем меня поняли..вот вам код небольшой,который иллюстрирует то,что я хочу

    staticvoidReadSettings()
    {
    IsolatedStorageFile StorageFile = IsolatedStorageFile.GetUserStoreForDomain();
    IsolatedStorageFileStream StorageStream = new IsolatedStorageFileStream("Settings.xml", FileMode.Open, FileAccess.Read);

    System.Xml.XmlTextReader Reader = new System.Xml.XmlTextReader(StorageStream);

    while (Reader.Read())
    {
    switch (Reader.Name)
    {
    case "TestVariable":
    int variable = int.Parse(Reader.ReadString());
    Console.WriteLine(variable.ToString());
    break;
    }
    }
    StorageFile.Close();
    StorageStream.Close();

    }

    static void WriteSettings()
    {

    IsolatedStorageFile StorageFile = IsolatedStorageFile.GetUserStoreForDomain();
    IsolatedStorageFileStream StorageStream = new IsolatedStorageFileStream("Settings.xml", FileMode.Create, FileAccess.Write);

    System.Xml.XmlTextWriter Writer = new System.Xml.XmlTextWriter(StorageStream, Encoding.UTF8);

    Writer.Formatting = System.Xml.Formatting.Indented;

    Writer.WriteStartDocument();
    Writer.WriteStartElement("Settings");

    Writer.WriteStartElement("TestVariable");
    Writer.WriteValue(Program.Variable.ToString());
    Writer.WriteEndElement();

    Writer.WriteEndElement();
    Writer.Flush();
    Writer.Close();

    StorageFile.Close();
    StorageStream.Close();

    }

  2. 14
    Михаил Митрофанов ответил:

    Зачем создавать, можно просто пересоздавать.
    Например

    Stream f = new FileStream(@"input.txt", FileMode.Open, FileAccess.Read);
    … // code
    f = new FileStream(@"input2.txt", FileMode.Open, FileAccess.Read);
    … // another code

    Аналогично и с потоком для записи в файлы

  3. 13
    Денис Горячёв ответил:

    Леонид maxleo Максимов

    а можно ли подобное то сделать в Шарпе,как в Бейсике??

  4. 12
    Денис Горячёв ответил:

    а то больно накладно для каждой переменной свой файл создавать….

  5. 11
    Максим Михайловский ответил:

    можно короче писать:

    string www = "Раз раз";
    File.WriteAllText("1.txt", www);
    Console.WriteLine("Читаем текст > ");
    string rd = File.ReadAllText("1.txt");
    Console.WriteLine(rd);
    Console.ReadKey();

  6. 10
    Леонид Максимов ответил:

    про VB6 – первым аргументом Write является не индекс файла, а его "номер открытого файла" (см FreeFile, Open). соответственно, любой идентификатор открытого файла (хендл, структура или объект) будет являться аналогом.

  7. 9
    Влад Лисовский ответил:

    угу, с краскостью у меня иногда проблемы…забыл про метод Peek()

  8. 8
    Алексей Сторожев ответил:

    string str = "";
    for (; ; )
    {
    str = reader.ReadLine();//read from input.txt
    if (str != null)
    {
    Console.WriteLine(str);
    writer.WriteLine(str);//write in output.txt
    writer.Flush();
    }
    else
    break;
    }

    вот это как-то настораживает..
    на c# никогда не писал, но подозреваю что это можно превратить в
    while (reader.Peek() >= 0)
    {
    str = reader.ReadLine();
    Console.WriteLine(str);
    writer.WriteLine(str);
    }

  9. 7
    Денис Горячёв ответил:

    ок,я перепишу код и буду разбираться над каждой строчкой))спасибо большое,удивляюсь,как это я сам не додумался тупо до построчного считывания))

  10. 6
    Денис Горячёв ответил:

    канеш не совсем то,что я хотел,но тоже сойдет для начала)

  11. 5
    Влад Лисовский ответил:

    мой кривоватый учебный пример выглядит так:

    [code]
    using System;
    using System.IO;

    class Test_System_IO
    {
    public static void Main()
    {
    Stream f = new FileStream(@"input.txt", FileMode.Open, FileAccess.Read);
    StreamReader reader = new StreamReader(f);
    StreamWriter writer = new StreamWriter(@"output.txt");//here too

    string str = "";
    for (; ; )
    {
    str = reader.ReadLine();//read from input.txt
    if (str != null)
    {
    Console.WriteLine(str);
    writer.WriteLine(str);//write in output.txt
    writer.Flush();
    }
    else
    break;
    }

    Console.Read();
    reader.Close();
    writer.Close();
    }
    }
    [/code]

    файлы input.txt и output.txt должны находиться в файле со сборкой программы…

  12. 4
    Влад Лисовский ответил:

    можно и подругому ессно…в .NET многое можно несколькими способами сделать :)

  13. 3
    Денис Горячёв ответил:

    хорошо,спасибо вам за помощь…но я хотел бы увидеть именно пример того,чего я хочу или же пример какого нить кода,который бы аналогично бы действовал-то есть берем значение переменной,записываем в файл(или кучу переменных),допустим закрываем программу,а потом просто считываем значения переменных из файла,когда это необходимо при мледюущем запуске программы или при вызове метода

  14. 2
    Влад Лисовский ответил:

    System.IO, в этом пространстве классы для работы с потоками, в том числе для работы с файлом…
    насчёт того чтобы присвоить индекс не скажу точно, я не встречелся…
    да и нужны они, так и так супер всё логично :)

    примеры кода нужны?

  15. 1
    Влад Лисовский ответил:

    ещё такая просьба…есть тема "конкретные вопросы по C#", лучше там задавать вопросы :) спасибо за понимание

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.