Hur kan jag påverka vart min text blir placerad efter en beräkning? C# (nybörjare)

Permalänk
Medlem

Hur kan jag påverka vart min text blir placerad efter en beräkning? C# (nybörjare)

Är nybörjare, har en uppgift som går ut på att skriva ut ett antal säljare som sedan grupperas i olika nivåer baserat på hur många artiklar de har sålt. Jag kan lyckas med det felfritt, ända problemet är att i uppgiften så ska säljarna grupperas och skrivas ut direkt efter det att man har räknat upp säljarna i gruppen. Låt säga att Anders har sålt 150 artiklar och Filip 180 artiklar, då ska båda direkt placeras i grupp 3 och sen går man vidare. Mitt problem är att grupperingen och nivå placeringen sker mot slutet när alla säljare har blivit inskrivna, hur ändrar jag så att det skrivs ut direkt efter att man har skrivit ut antal artiklar? Så här ska de se ut ungefär.

namn: jon
id: 5464646
Distrikt: syd
artiklar: 200
1 säljare har nått nivå 4: > 200 artiklar
Namn: Elias
id: 45464
Distrikt: öst
Artiklar: 20
1 Säljare har nått nivå 1: < 50 artiklar.

Mitt problem är att efter varje säljare har blivit skriven, DÅ skrivs nivå placeringen, mot slutet det absolut sista.

Jag tror att dessa linjer av koder hanterar placeringen, men som sagt är ny så vet inte hundra än vad som påverkar vad.

StreamWriter file = new StreamWriter("results.txt", false, System.Text.Encoding.UTF8); //
Path.GetFullPath("results.txt");
Console.WriteLine("\nNamn:\tPersonnummer: \tDistrikt: \tArtiklar:");
file.WriteLine("\nNamn:\tPersonnummer:\tDistrikt: \tArtiklar:");
for (int i = 0; i <= 5; i++)
{
Console.WriteLine("\n"+seller[i].name+"\t"+seller[i].id+"\t" + seller[i].district+"\t"+seller[i].products);
file.WriteLine("\n"+seller[i].name+"\t"+seller[i].id+"\t"+seller[i].district+"\t"+seller[i].products);
}

string level = "";
int number = 0;
foreach (Salesman k in seller)
{
if (level != k.level)
{
Console.WriteLine("\n{0}{1}\n", number, level);
file.WriteLine("\n{0}{1}\n", number, level);
number = 0;
level = k.level;
}

number++;
}

Console.WriteLine("\n{0}{1}\n", number, level);
file.WriteLine("\n{0}{1}\n", number, level);
file.Close();
}

Lösningen känns relativt simpel, men som nybörjare vet jag inte direkt vad som påverkar specifikt placeringen av texten när det körs igång. Kan länka hela koden ifall det gör det lättare?

Permalänk
Medlem
Skrivet av Tyler118:

Är nybörjare, har en uppgift som går ut på att skriva ut ett antal säljare som sedan grupperas i olika nivåer baserat på hur många artiklar de har sålt. Jag kan lyckas med det felfritt, ända problemet är att i uppgiften så ska säljarna grupperas och skrivas ut direkt efter det att man har räknat upp säljarna i gruppen. Låt säga att Anders har sålt 150 artiklar och Filip 180 artiklar, då ska båda direkt placeras i grupp 3 och sen går man vidare. Mitt problem är att grupperingen och nivå placeringen sker mot slutet när alla säljare har blivit inskrivna, hur ändrar jag så att det skrivs ut direkt efter att man har skrivit ut antal artiklar? Så här ska de se ut ungefär.

namn: jon
id: 5464646
Distrikt: syd
artiklar: 200
1 säljare har nått nivå 4: > 200 artiklar
Namn: Elias
id: 45464
Distrikt: öst
Artiklar: 20
1 Säljare har nått nivå 1: < 50 artiklar.

Mitt problem är att efter varje säljare har blivit skriven, DÅ skrivs nivå placeringen, mot slutet det absolut sista.

Jag tror att dessa linjer av koder hanterar placeringen, men som sagt är ny så vet inte hundra än vad som påverkar vad.

StreamWriter file = new StreamWriter("results.txt", false, System.Text.Encoding.UTF8); //
Path.GetFullPath("results.txt");
Console.WriteLine("\nNamn:\tPersonnummer: \tDistrikt: \tArtiklar:");
file.WriteLine("\nNamn:\tPersonnummer:\tDistrikt: \tArtiklar:");
for (int i = 0; i <= 5; i++)
{
Console.WriteLine("\n"+seller[i].name+"\t"+seller[i].id+"\t" + seller[i].district+"\t"+seller[i].products);
file.WriteLine("\n"+seller[i].name+"\t"+seller[i].id+"\t"+seller[i].district+"\t"+seller[i].products);
}

string level = "";
int number = 0;
foreach (Salesman k in seller)
{
if (level != k.level)
{
Console.WriteLine("\n{0}{1}\n", number, level);
file.WriteLine("\n{0}{1}\n", number, level);
number = 0;
level = k.level;
}

number++;
}

Console.WriteLine("\n{0}{1}\n", number, level);
file.WriteLine("\n{0}{1}\n", number, level);
file.Close();
}

Lösningen känns relativt simpel, men som nybörjare vet jag inte direkt vad som påverkar specifikt placeringen av texten när det körs igång. Kan länka hela koden ifall det gör det lättare?

Hur menar du att du tror? Du har väl skrivit koden?
Har du lärt dig att använda debuggern? Annars tycker jag det är en bra början att lära dig det nu.

Har du tillgång till all data (utgår från listan seller) så hade jag sorterat/grupperat i minnet och sen skrivit ner allt i filen. Förstår dock inte exakt vad du menar eller hur modellen ser ut.
Om du visar hur din fil ser ut nu och sen hur du vill att den ska se ut så är det enklare att visualisera.

Permalänk
Medlem
Skrivet av zaibuf:

Hur menar du att du tror? Du har väl skrivit koden?
Har du lärt dig att använda debuggern? Annars tycker jag det är en bra början att lära dig det nu.

Har du tillgång till all data (utgår från listan seller) så hade jag sorterat/grupperat i minnet och sen skrivit ner allt i filen. Förstår dock inte exakt vad du menar eller hur modellen ser ut.
Om du visar hur din fil ser ut nu och sen hur du vill att den ska se ut så är det enklare att visualisera.

Menar du visa min hela kod eller?