Avatar
trainmaniak
Člen
Avatar
trainmaniak:

Ahoj,
mám jeden problém. Mám program, který načte textový soubor do proměnné, přepíše proměnnou, a znovu uloží do toho souboru, přepíše. Jenže program skončí s chybou, že tento soubor je už používaný jiným programem (tímto). Prosím poraďte, co s tím

 
Odpovědět 5.1.2014 21:06
Avatar
Odpovídá na trainmaniak
Ondřej Štorc:

Asi by bylo dobré kdybys sem přidal kód

Nahoru Odpovědět 5.1.2014 21:16
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
trainmaniak
Člen
Avatar
trainmaniak:

using System;
using System.Collec­tions.Generic;
using System.Linq;
using System.Text;
using System.Threadin­g.Tasks;
using System.IO;

namespace ConsoleApplica­tion22
{
class Program
{
static void Main(string[] args)
{

string file_name = "data.txt";

int num_lines = File.ReadAllLi­nes(file_name)­.Length;

string[] input = new string[num_lines];
string[] output = new string[num_lines];

while (1 < 2)
{

StreamReader sr_public = File.OpenText(fi­le_name);
using (StreamReader sr = File.OpenText(fi­le_name))
{

for (int i = 0; i < num_lines; i++)
{
string line = sr.ReadLine();
string[] line_split = line.Split(';');

input[i] = line_split[0];
output[i] = line_split[1];

}
}

string question = Console.ReadLine();
int index = Array.IndexOf(in­put, question);
if (index != -1)
{
Console.Write­Line(output[in­dex]);
}
else
{
Console.Write­Line(question);
string answer = Console.ReadLine();
string save = sr_public + question + ";" + answer;

using (StreamWriter sw = new StreamWriter(fi­le_name, true))
{
sw.WriteLine(sa­ve.Remove(0, 22));
}
}
}
}
}
}

 
Nahoru Odpovědět 5.1.2014 21:18
Avatar
Odpovídá na trainmaniak
Vojtěch Pospíchal:

Co to třeba zkusit pomocí tlačítka kódu? Kdo má tohle číst?

 
Nahoru Odpovědět 5.1.2014 21:32
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na trainmaniak
Jan Vargovský:

Když otvíráš 2x ten samý soubor, nediv se. Nebo ho máš otevřený normalně na desktopu a otvíráš je ještě zkus tvůj program.

Editováno 5.1.2014 21:38
 
Nahoru Odpovědět 5.1.2014 21:37
Avatar
trainmaniak
Člen
Avatar
trainmaniak:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace ConsoleApplication22
{
    class Program
    {
        static void Main(string[] args)
        {

            string file_name = "data.txt";


            int num_lines = File.ReadAllLines(file_name).Length;


            string[] input = new string[num_lines];
            string[] output = new string[num_lines];


            while (1 < 2)
            {

                StreamReader sr_public = File.OpenText(file_name);
                using (StreamReader sr = File.OpenText(file_name))
                {

                    for (int i = 0; i < num_lines; i++)
                    {
                        string line = sr.ReadLine();
                        string[] line_split = line.Split(';');


                        input[i] = line_split[0];
                        output[i] = line_split[1];

                    }
                }

                string question = Console.ReadLine();
                int index = Array.IndexOf(input, question);
                if (index != -1)
                {
                    Console.WriteLine(output[index]);
                }
                else
                {
                    Console.WriteLine(question);
                    string answer = Console.ReadLine();
                    string save = sr_public + question + ";" + answer;

                    using (StreamWriter sw = new StreamWriter(file_name, true))
                    {
                        sw.WriteLine(save.Remove(0, 22));
                    }
                }
            }
        }
    }
}
 
Nahoru Odpovědět 5.1.2014 21:38
Avatar
trainmaniak
Člen
Avatar
trainmaniak:

a jak ho zavřít po načtení?

 
Nahoru Odpovědět 5.1.2014 21:38
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na trainmaniak
Jan Vargovský:
StreamReader sr_public = File.OpenText(file_name);
using (StreamReader sr = File.OpenText(file_name))

Mluvím o tomto...

 
Nahoru Odpovědět 5.1.2014 21:39
Avatar
trainmaniak
Člen
Avatar
trainmaniak:

už to funguje. Nevšiml jsem si toho :D
Díky

 
Nahoru Odpovědět 5.1.2014 21:43
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.