Введение
Основы C++
ООП на C++
OpenGL
Основы Java
Основы C#
Дистанционное
Разное
Информация
|
Задания
Задание 9
Использование классов StreamReader для чтения
и StreamWriter для записи символьных данных с кодировкой Unicode
//------Изучение чтения файлов----
string path = @"..\..\MyData\MyText.txt";
StreamReader filein = null;string s = "";
filein = new StreamReader(path, System.Text.Encoding.ASCII);
string lineinput = null; listBox1.Items.Clear();
while ((lineinput = filein.ReadLine()) != null)
{ listBox1.Items.Add(lineinput); s = s + lineinput+"\r\n"; }
textBox1.Text=s; filein.Close();
//------Изучение записи файлов----
string path2 = @"..\..\MyData\MyOutText.txt";
StreamWriter fileout = null;
fileout = new StreamWriter(path2);
string lineinput = null; int n = 0;
while (n
{ fileout.WriteLine(listBox1.Items[n]+" out");n++;};
fileout.Write("\r\n");
fileout.Write(textBox1.Text+"out");
fileout.Close();
Задание 9A
Сравнить применение функций языков C++ и C#
на примере чтения данных (трехмерных координат вершин) из текстовых файлов
В примере языка C++ применяются функции fgets() и sscanf()
void readstr(FILE *f,char *string){
do{ fgets(string, 255, f);
} while ((string[0] == '/') || (string[0] == '\n'));
return;}
for (int vert = 0; vert < 3; vert++){
readstr(filein,oneline);
sscanf(oneline, "%f %f %f", &x, &y, &z);
vertex[vert].x = x;
vertex[vert].y = y;
vertex[vert].z = z;}
Использование класса StreamReader для чтения текстовой строки с данными
В примере языка C# применяются функции ReadLine(),Split(),
for (int vert=0; vert < 3; vert++){
line = filein.ReadLine();
string[] coords = line.Split(' ');
int filled = 0;
for (int j=0; j < coords.Length; j++){
vertex[vert].coords[filled] = float.Parse(coords[j]);
filled++;}
line = ""; }
Скачать пример задания 9a
Задание 10
Использование класса FileStream (произвольного доступа к файлу)
для чтения русской кодировки
//------Изучение чтения файлов----
FileStream fs; string str;
fs = File.OpenRead(name);
byte[] b = new byte[fs.Length];
Encoding encoding = Encoding.Default;
listBox1.Items.Clear();
//read from file
while (fs.Read(b, 0, b.Length) > 0)
{
str = encoding.GetString(b);
listBox1.Items.Add(str);
};
Задание 10A
Использование класса FileStream (произвольного доступа к файлу)
Использование классов BinaryReader для чтения и
BinaryWriter для записи бинарных данных
///
const string fileName = "NewAppSet.dat";
float aspectRatio;
string lookupDir;
int autoSaveTime;
bool showStatusBar;
aspectRatio = 1.3333F;
lookupDir = @"C:\AppDirectory";
autoSaveTime = 30;
showStatusBar = true;
byte b; char ch;
listBox1.Items.Clear();
FileStream myStream = new FileStream(
fileName, FileMode.OpenOrCreate,FileAccess.ReadWrite);
BinaryWriter binW = new BinaryWriter(myStream);
binW.Write(aspectRatio);
binW.Write(lookupDir);
binW.Write(autoSaveTime);
binW.Write(showStatusBar);
binW.Write(lookupDir);
///
binW.BaseStream.Position = 0;
BinaryReader binR = new BinaryReader(myStream);
int temp = 0;
while (binR.PeekChar() != -1)
{
b = binR.ReadByte();
if (b == 'p')
{
b = (byte)('m');
binW.BaseStream.Position = temp;
binW.Write(b);
}
ch = (char)b;
listBox1.Items.Add(temp.ToString() + " " + b.ToString()+" "+ch.ToString());
temp++;
}
binR.Close(); binW.Close();
myStream.Close();
}
///
<<Назад>>
|