Jag har en txt fil i följande format (ca 1000- 1250 rader): Tror inte att det finns nått automagiskt sätt liknande det som finns i pearl, att man kan plocka ut kolumner från en textfil (har jag för mig det finns, var ett tag sedan jag höll på med pearl). Du får helt enkelt gå igenom rad för rad och plocka ut talen. I c# så är det inga störra problem att plocka ut tal från en textfil. Man kan lösa sånt här ganska smidigt med Regex: Tack så mycket för hjälpen tyvärr har jag gjort ett litet tankefel tidigare... Om vi kollar på Ola's lösning så skriver han: Japp, så långt är jag hyffsat med men när jag provade at debugga fick jag fel på raderna: ifall du använder .NET (C#) 1.1 så måste du använda nåt typ ArrayList istället, för generics kom med först i 2.0 BTW om det är en skoluppgift kommer din lärare bli lite förvånad om du har löst det med Regex, txt fil med 2 kolumner till 2st arrays
Datum Kurs Antal
19980617 64,75 8078728
19980618 63,38 5058848
19980622 63,00 9548024
19980623 65,75 5752912
19980624 67,50 6880248
19980625 68,25 6004120
..... .... ....
Det jag undrar över är hur jag på ett smidigt sätt kan få in Kurs och Antal kollumnerna i två stycken arrays?Sv: txt fil med 2 kolumner till 2st arrays
/Joakim.Sv: txt fil med 2 kolumner till 2st arrays
c# 2.0
using System.Text.RegularExpressions;
private void button1_Click(object sender, EventArgs e)
{
String data = @"
19980617 64,75 8078728
19980618 63,38 5058848
19980622 63,00 9548024
19980623 65,75 5752912
19980624 67,50 6880248
19980625 68,25 6004120";
MatchCollection result;
result = Regex.Matches(data, " (\\d\\d,\\d\\d) (\\d+)([\\s\\n]?)");
List<String> kurser = new List<String>();
List<String> antal = new List<String>();
foreach (Match m in result)
{
kurser.Add(m.Groups[1].Value);
antal.Add(m.Groups[2].Value);
}
String strKurser = String.Join("\n", kurser.ToArray());
String strAntal = String.Join("\n", antal.ToArray());
MessageBox.Show(strKurser);
MessageBox.Show(strAntal);
}
Sv:txt fil med 2 kolumner till 2st arrays
Tydligen behöver jag egentligen bara läsa in "Kurs" kolumnen till en Array.
Är det någon som skulle kunna hjälpa mig hur jag ska göra?
Bonus fråga ;)
När jag har fått in denna kolumn i Arrayen hade jag tänkt att utföra en operation på den som går ut på att ta värde2/värde1(63,38/64,75), Värde3/Värde2(63/63,38), Värde4/Värde3(65,75/63) osv... och sedan spara det i en ny Array. Finns det en lösning på även detta tas den tacksamt emot.Sv: txt fil med 2 kolumner till 2st arrays
kurser.Add(m.Groups[1].Value);
antal.Add(m.Groups[2].Value);
(sorry, vet inte riktigt hur man gör kodsnuttar här i forumet).
Prova med att kommentera bort den undre raden i koden.
hehe, din bonusfråga. Känns lite som en skoluppgift och det känns lite fel att ge dig lösningen till den i så fall.
Men du ska i alla fall skapa en ny arraylist där du lägger svaren. Kör en gammal hederlig for-loop där du börjar ifrån 1 istället för 0 där du loopar igenom kurs-listan.
Division blir ju då kurser[i] / kurser[i-1].
Prova med det.
/Joakim.Sv:txt fil med 2 kolumner till 2st arrays
[code C#]List<String> kurser = new List<String>();
List<String> antal = new List<String>();
[/code]
Men jag ska prova att få till det ikväll.Sv: txt fil med 2 kolumner till 2st arrays
Sv:txt fil med 2 kolumner till 2st arrays
överkurs kanske..
Utan det förväntade är antagligen att du ska läsa med en IO.Streamreader eller liknande, rad för rad och i varje rad plocka ut rätt positioner på raden: t.ex: raden.substring(5,5);
Och ett tips bara: du kommer bli en bättre programmerare om du med hjälp av böcker (!) läser dig till hur du ska göra, så du förstår hur det hänger ihop, än att be någon fixa ett svar åt dig som du kanske ändå inte förstår. Man måste lära sig krypa innan man kan gå.