Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 19:20   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию работа с файлами на C#

с билдеровского с++ перешёл на майкрософтский C#.
изучаю работу с файлами.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;//для доступа к данным

namespace txt
{
    class Program
    {
        static void Main(string[] args)
        {
            String path = @"C:\login.txt";
            FileStream fstxt = File.Create(path, 1024);
            //FileStream Ftxt = new FileStream
        }
    }
}
вопрос:переменная fstxt весит 1024 бит и файл login.txt не может быть больше 1024 бит или может превыcить этот размер?
Dimarik вне форума Ответить с цитированием
Старый 03.02.2010, 21:06   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

О_О А попробовать самому?
Carbon вне форума Ответить с цитированием
Старый 03.02.2010, 22:01   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

народ, хелпаните плиз, если не трудно. вопросы в комментариях. с книжками и MSDN кое в чём разобрал код проги из книжки, но не до конца(((
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace write
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] byData;
            char[] charData;
            try
            {
                FileStream aFile = new FileStream("Temp.txt", FileMode.Create);
                charData = "My pink half opf the drainpipe.".ToCharArray();
                byData = new byte[charData.Length];
                Encoder e = Encoding.UTF8.GetEncoder();//
                //MASDN гласит, что тип Encored - это перекодированные символы в последовательность байт
                //Encoding.UTF8.GetEncoder() - мы используем класс Encoding, преобразуем в кодировку UTF8, а функция 
                //GetEncoder() - получает байт-код каждого символа, так?
                //только малость непонятно. из чего тут байт код получается, ведь не указано,
                //из какой переменной байт-код будем получать, или это так делается при создании этой переменон? если да, то зачем.? чёт недогояю(((
                
                e.GetBytes(charData, 0, charData.Length, byData, 0, true);//преобразование символьного массива в байтовый массив
                //Переместить файловый указатель в начало файла
                aFile.Seek(0, SeekOrigin.Begin);//Provides the fields that represent reference points in streams for seeking. - MSDN
                //так зачем это? ищет откуда бы начать записывать файл? так это указано в методе Write??
                aFile.Write(byData, 0, byData.Length);
            }
            catch (IOException ex)//что такое в скобках? что за обработка ошибки?
            {
                Console.WriteLine("An IO exception has been thrown!");
                Console.WriteLine(ex.ToString());// что в скобках?
                Console.ReadKey();
                return;
            }


        }
    }
}
P.S. по поводу ex.ToString()
как я понял из MSDN The exception that is thrown when an I/O error occurs
эта штука, точнее класс ex как-то работает, когда появляется ошибка I/O. ну, это точнее будет сказано как я перевёл. но вот ни капельки не понятно. если кто может подсказать, подскажите плиз)
Dimarik вне форума Ответить с цитированием
Старый 25.10.2010, 15:43   #4
Наташа1815
Новичок
Джуниор
 
Регистрация: 24.10.2010
Сообщений: 2
По умолчанию

Программа позволяет вводить текст в файл.программа должна предсказывать возможность сохранения и загрузки текста в файл

программу как бы сделали.. но что-то она не работает .подскажите что не так?!спасибо большое!


#include <stdio.h>
#include <string.h>
void main()
{
int exit=1;
while(exit)
{
int command=0;
char name[12];
char buffer[255] = "";
puts("-----------------------------------------------------------");
puts("Enter choise: \n 1)New file\n 2)Open file\n 3)Exit\n ");
scanf("%d",&command);
switch(command)
{
case 1:
char name[12];
char command[255] = "";
printf("Enter file name: ");
scanf("%s",name);
printf("Enter :exit for exit... \n");
FILE* file = fopen(name,"w");
do
{
if(strcmp(buffer,""))
fprintf(file,"%s \n",buffer);
gets(buffer);
}while((strcmp(buffer,":exit")));
fclose(file);
break;
case 2:
printf("Enter file name: ");
scanf("%s",name);
FILE* f = fopen(name,"r");
printf("%s",buffer);
while(!feof(f))
{
printf("%s",buffer);
fgets(buffer,255,f);
}
fclose(f);
break;
case 3:
exit = 0;
break;
default:
printf("Invalalid coomand");
}
}
}
Наташа1815 вне форума Ответить с цитированием
Старый 25.10.2010, 15:57   #5
Xeonc
Форумчанин
 
Регистрация: 20.10.2010
Сообщений: 143
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
с билдеровского с++ перешёл на майкрософтский C#.
изучаю работу с файлами.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;//для доступа к данным

namespace txt
{
    class Program
    {
        static void Main(string[] args)
        {
            String path = @"C:\login.txt";
            FileStream fstxt = File.Create(path, 1024);
            //FileStream Ftxt = new FileStream
        }
    }
}
вопрос:переменная fstxt весит 1024 бит и файл login.txt не может быть больше 1024 бит или может превыcить этот размер?
в с# все гораздо проще, и работа с памятью намного дружелюбнее к новичку, чем в с++.

Считать весь файл в программу можно простым способом
#incluse System.IO;
...
тут началась программа
...

StreamReader sr = new StreamReader("yourfile.txt");
string []saveInArray = new string[n]; // где n число строк в файле
int i = 0;
string s;
while((s = sr.ReadLine())!=null)
{
saveInArray[i] = s;
i++;
}
sr.Close();
На выходе у вас получится сохраненный файл в массиве строк

Но вообще, посоветовал бы в первую очередь искать ответы на стандартные вопросы в MSDN - там все это расписано очень подробно
451 -870-7(три)6. Выполняю работы на заказ, гарант честности - ВМ аттестат с 60+ БЛ без претензий
Xeonc вне форума Ответить с цитированием
Старый 25.10.2010, 16:33   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Xeonc

1) не занимайтесь, пожалуйста, некропостингом! (посмотрите на дату сообщения, на которое вы отвечаете)

2) Вы на C# пример привести хотите?
Так не проще (заполнить строковый массив строчками из файла)?
Код:
       StreamReader sr = new StreamReader(@"c:\yourfile.txt");
       string[] saveInArray = sr.ReadToEnd().Split(new string[] {"\r"}, StringSplitOptions.None).ToArray();
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2010, 23:23   #7
v4nd4ll
Новичок
Джуниор
 
Регистрация: 01.06.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Xeonc

1) не занимайтесь, пожалуйста, некропостингом! (посмотрите на дату сообщения, на которое вы отвечаете)

2) Вы на C# пример привести хотите?
Так не проще (заполнить строковый массив строчками из файла)?
Код:
       StreamReader sr = new StreamReader(@"c:\yourfile.txt");
       string[] saveInArray = sr.ReadToEnd().Split(new string[] {"\r"}, StringSplitOptions.None).ToArray();
Сами то...

String [] aStr = File.ReadAllLines(path);
v4nd4ll вне форума Ответить с цитированием
Старый 30.11.2010, 22:25   #8
Lusi
 
Регистрация: 30.11.2010
Сообщений: 3
По умолчанию

pomogite pojalusta razobratsa,kak vleyaet sleduyushiy kod na funkciu Write()
chboxPhoto_CheckedChanged(object sender, EventArgs e)
{
if (chboxPhoto.Checked)
{


OpenFileDialog op = new OpenFileDialog();
DialogResult dr=op.ShowDialog();

string fileName=op.FileName;

FileInfo file = new FileInfo(fileName);
//MessageBox.Show(file.Name);
try
{
file.CopyTo("D:\\Picture\\" + file.Name);
}
catch
{
MessageBox.Show("Choose another picture!");
}


txtPhoto.Text = file.Name;

// txtPhoto.Enabled = true;




}
else
{
txtPhoto.Text = "";
txtPhoto.Enabled = false;

}
}

public void Write()
{
BinaryFormatter bf = new BinaryFormatter();
FileStream fs = new FileStream("BaseData.dat"
, FileMode.OpenOrCreate, FileAccess.Write);
bf.Serialize(fs, arr);
fs.Close();
}
Lusi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си++. Работа с файлами. Diamond2107 Помощь студентам 12 06.12.2009 20:38
Работа с файлами в С++ ai\ekcah^p Помощь студентам 2 21.06.2009 16:16
Работа с файлами С++ Игорь777 Помощь студентам 2 27.04.2009 23:25
Работа с файлами на С++ nec117 Общие вопросы C/C++ 4 24.02.2009 23:18
Работа с файлами ShVad Общие вопросы Delphi 4 03.02.2007 10:43