C# fájl kezelésnél mi ez a hiba?
itt a képernyőmentés:
Szerintem az a hiba hogy túl nagy a fájl.
Ha ez a hiba akkor hogy tudok nagyobb file-okat olvasni?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace SzóSzámlálás
{
class Program
{
static void Main(string[] args)
{
int sorszam = 0, i1 = 0, i2 = 0, szamlalo = 0;
string sor = "", talalat = "";
Console.WriteLine("Gépeld be a file nevét:");
string fajl = Console.ReadLine();
Console.WriteLine("Gépeld be a keresendő karakter sorozatot:");
string szo = Console.ReadLine();
StreamReader olvas = new StreamReader(fajl);
do
{
do
{
sor = olvas.ReadLine();
i2 = 0;
do
{
talalat = "";
for (i1 = 0; i1 < szo.Length; i1++)
{
talalat = talalat + Convert.ToString(sor[i2 + i1]);
}
i2++;
}
while (szo != talalat && i2 - 1 + szo.Length != sor.Length);
sorszam++;
}
while (szo != talalat && olvas.Peek() != -1);
if (szo == talalat)
{
szamlalo++;
Console.WriteLine("Találat: sor=" + (sorszam - 1) + " oszlop=" + (i2 - 1));
}
}
while (olvas.Peek() != -1);
olvas.Close();
Console.WriteLine();
if (0 < szamlalo)
{
Console.WriteLine("A szó enyiszer szerepel a file-ban: " + szamlalo);
}
else
{
Console.WriteLine("A file-ban nem található a(z) '" + szo + "' karaktersorozat.");
}
Console.ReadLine();
}
}
}
Anélkül, hogy lefuttatnám, szerintem a "sor[i2 + i1]" rész szalad túl az indexeléssel, főleg, hogy első látásra máshol nem is látok indexelést. De egyébként ott a hiba, ahol az exception feldobásakor a debugger megállítja a programot.
Valószínűleg akkor indexel túl, ha a sor rövidebb, mint a keresett szó. Lehet itt üres sorra, sortörésre is gondolni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!