Nekromanti c++ hjälp!!

Klon

Hero
Joined
1 Aug 2000
Messages
1,424
Location
Sverige, Örebro
Någon godhjärtad programmerare eller c++ kunnig som vet hur man läser in flera bestämda rader från en txt fil

som det är nu kan jag bara läsa in hela filen (använder fin och fout, om det nu finns några andra som jag inte känner till)

vore tacksam för hjälp.
La det här på spelforumet eftyersom det är lite för off topic på rollspel tycker jag. kanske lite här med, men det hela är till en RP-skapare...
boirde jag kanske lagt det på Rollspelsmakande, nåja, flytta det dit det passar om ni hittar något bättre
bara jagt får hjälp så är jag fullkomligt nöjd
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,580
Någon godhjärtad programmerare eller c++ kunnig
Jag är varken speciellt godhjärtade eller C++-kunnig, men är dock programmerare.

som vet hur man läser in flera bestämda rader från en txt fil
Det här kan jag.

Du verkar få in hela filen i en sträng. Det är bra. Det kan vi börja med. Jag vet inte hur filen ser ut, så därför gissar jag.

Den är antagligen inte bara löptext, då hade du knappast haft dessa problem.
Antingen har den fasta storlekar för datafält, eller så är fälten avdelade med något tecken, tex tab eller komma.

Är det fasta storlekar borde det vara ganska lätt att plocka ut data med vanliga stränghanteringsfunktioner. Jag antar därför att det inte är så.

Är det teckenseparerade data så gör/hitta några praktiska funktioner. Dessa är en som räknar antalet datafält separerade av specificerad sträng och en som returnerar ett visst datafält baserat på nummer och separatorsträng.

Med dessa funktioner är det lätt att plocka ut raderna ur strängen genom att bryta ner den baserat på radbrytning som separator. Dessa kan sedan brytas ner baserat på den använda separatorn (tex tab).

Svårare än så är det inte.
 

Klon

Hero
Joined
1 Aug 2000
Messages
1,424
Location
Sverige, Örebro
alltså...
nu får du se mig som en riktig nybörjare här...
det var först ett par dagar sedan jag ens började med att hantera data in och ut till textfiler.
så det jag haterar är inte någon egentlig data
ska ge exempel på hur det kan se ut i filen och vad jag vill plocka ut...

exempel:

1: Rubrik. detta är lite löptext som
jag håller på och för över till mitt program
och jag har inte lärt mig så mycket om det.
2: nu kommer jag till en ny rubrik som inte
hör samman med den första rubriken så jag
vill inte mat ut allt.

3: Den tredje rubriken har också en massa
text precis som vart och en av det följande
kanske något under hundra stycken har.


Det i fet stil är vad jag vill mata ut, inget annat.
hittils har jag bara lärt mig mata ut på ett enda sätt, nämnligen;

ifstream fin("textfilen.txt");
char ch;
while (fin.get(ch))
cout<<ch;
cout<<"\n"<<endl;
fin.close();


Jag försöker förstå detta helt. men jag har egentligen inte tillräcklig kunskap om strömmar om jag ska vara ärlig, var tvungen att lära mig detta snabbt till mitt projekt eftersom det krävde det. Är naturligtvis tacksam för all hjälp jag kan få.
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,580
Nu är jag inte alls någon van C++-programmerare, men det ser för mig ut som om du när du läser tecken för tecken behöver något villkor för att testa på start och slut på det du vill plocka ut.

Hade jag suttit i din sits skulle jag som nybörjare övervägt ett enklare programspråk. C och dess släktingar är inte rätt ställe att börja på.

Jag tror dock att du får bättre hjälp om du frågar på ett programmeringsforum.

Dessutom, fortsätter vi den här diskussionen så kommer någon att bli sur och låsa den. Den hör inte riktigt hemma här.
 

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
4,971
Location
Linköping
ifstream fin("textfilen.txt");
char line[100];
while (fin.getline(line[100]))
{
cout << line << endl;
}
fin.close();

Sådär gör du för att läsa in hela textrader (max 100 tecken i det här fallet) istället för bara ett tecken. Sedan får du pilla på while satsen så att den blir som du vill ha den.

-----------------------------

ifstream fin("textfilen.txt");
char line[100];
active=0;
while (fin.getline(line[100]))
{
if (line[0]=='2' { active=1; }
if (line[0]=='3' { active=0; }
if (active==1) {
cout << line << endl;
}
}
fin.close();

Sådär bör du få ut enbart stycke 2 (om jag inte gjort bort mig). Däremot måste du läsa igenom hela filen fortfarande. Vill du ha smartare kod får du fråga nån annan. :gremsmile:
 

Klon

Hero
Joined
1 Aug 2000
Messages
1,424
Location
Sverige, Örebro
tackar... det där ska nog hjälpa en hel del...
en liten liten fråga bara
är active en variabel?
i så fall borde den väl vara en char antar jag.
nåja..
jag kan exprimentera med det
 

Klon

Hero
Joined
1 Aug 2000
Messages
1,424
Location
Sverige, Örebro
tja...
jag har läst två mycket grundläggande kurser i c++...
men vi gick mest igenom funktioner, variablerna struct och loopar...

alltså bara det mest grundläggande för att kunna göra något alls.
Jag försöker dock lära mig mer och håller på att gå igenom en såndäringa självstudiekurs, lär dig c++ på 3 veckor :gremsmirk:
går lite trögt eftersom jag gör det under min praktik så...

Så fullkomlig nybörjare är jag inte.
men jag skulle inte säga att jag kan så mycket heller. men vilket programmeringsspråk kan du rekomendera som är enklare, och som man swdan kan bygga på för att lära sig c++

man kanske kunde titta på det
 

Klon

Hero
Joined
1 Aug 2000
Messages
1,424
Location
Sverige, Örebro
Så trevligt...

och det är på svenska och allt...
då tar jag och ställer mina frågor där framöver så slipper vi dem i detta forumet :gremwink:
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,580
vilket programmeringsspråk kan du rekomendera som är enklare, och som man swdan kan bygga på för att lära sig c++
Jag gör nästan allt i Visual Basic, vilket jag tycker är en bra produkt för den sortens programmering jag gör (windowsprogram utan extrema krav på prestanda (läs spel och liknande) eller behov av systemnära programmering (drivrutiner och sånt)).
För enklare program och för att lära sig så är Rexx ett helt underbart språk. Enkelt, enhetligt och gratis. Lämpligt för små program och avancerade batchfiler. Med rätt kompilator och utvecklingsmiljö skulle det kunna vara en konkurrent till många windowsutvecklingsverktyg idag.
Java eller C# är populära, men ska jag vara ärlig så tycker jag inte att deras syntax är så nybörjarvänlig. Min grundprincip är att man först ska lära sig programmera, sedan kan man gräva ned sig i underlig syntax.

Vill du vara framtidssäker (vilket skämt i den här branchen!) så är mitt tips något av språken i Visual Studio.Net (Det vill säga Visual Basic.Net, Java.Net eller C#. C++ finns också där men även om det lagts på funktioner för att "prata .net" så är det inte fullt ut en del av plattformen.). Till skillnad från mycket annan Microsoft-hype så är faktiskt .Net en bra plattform, välgenomtänkt och med en stor del av "underligheterna av historiska skäl" bortplockade. Min gissning är att Microsoft om 4-6 versioner av windows kommer att plocka bort det nuvarande Windows-API och i stället kommer .Net att vara sättet man pratar med windows på. Har du väl lärt dig ett språk i .Net så är det dessutom lätt att byta.

Men som jag skrev ovan: koncentrera dig först på att lära dig programmera. Lär dig hur du strukturerar program och löser problem. Det är det viktiga. Sedan kan du byta språk ganska lätt.

Nu lämnar jag ämnet, eftersom det inte riktigt hör hemma mer. Har du fler frågor så skicka ett privat meddelande.
 

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
4,971
Location
Linköping
en liten liten fråga bara
är active en variabel?


Nja, dåligt av mig, det böra vara en bool som är true eller false beroende på om du vill skriva ut eller ej....
 

Gardener

Champion
Joined
7 Feb 2000
Messages
8,445
Location
Södermalm
Tråden stängs, och ett kort svar

Jo, jag har programmerat till och från i runda slängar 15 år och har jobbat professionellt med det i några år också. Nu är jag bara sluskig student som driver programmeringssite för skojs skull, eller nåt.

Hur mycket programmeringen än har med ett rollspelsprogram så har denna diskussion inget på detta forum att göra, tråden stängs. Programmeringsdiskussion hänvisas vänligt, men bestämt, till www.utvecklaren.com som Seinet så snällt redan hänvisat till också.
 
Top