15. marts 2002 - 19:46
Der er
2 kommentarer og 1 løsning
tekst til sammenhæng
vis jeg laver en *.txt fil som ser sådan ud: ------start tavle.txt------ <Point=10><Name=Drofzz><Weapon=Mp5><Method=body> <Point=15><Name=Getto><Weapon=Colt><Method=leftarm> <Point=100><Name=Getto><Weapon=Mp5><Method=headshot> <Point=10><Name=Getto><Weapon=Colt><Method=body> ------slut tavle.txt------ kan man så lave en windows-understøtende program, som regner det sammen, så der står: Navn: Drofzz Points: 10 Fav. våben: Mp5 Navn: Getto points:125 Fav. våben: Colt
Annonceindlæg fra Computerworld
15. marts 2002 - 22:58
#1
Her er løsningen i CBuilder. Jeg har implementeret en metode der læser Een linie ad gangen, hvor jeg så parser felterne en efter en. Derefter skriver jeg resultatet ud i en memo. void __fastcall TForm1::ReadLine(AnsiString aLine, AnsiString *aName, AnsiString *aPoints, AnsiString *aWeapons) { int StartIndex; int EndIndex; StartIndex = aLine.Pos("="); EndIndex = aLine.Pos(">"); if (StartIndex && EndIndex) { StartIndex += 1; // Skip ´=´ *aPoints = aLine.SubString(StartIndex,EndIndex-StartIndex); }else { // Error could not read Points from file return; } aLine = aLine.SubString(EndIndex+1,aLine.Length()-EndIndex); StartIndex = aLine.Pos("="); EndIndex = aLine.Pos(">"); if (StartIndex && EndIndex) { StartIndex += 1; // Skip ´=´ *aName = aLine.SubString(StartIndex,EndIndex-StartIndex); }else { // Error could not read Name from file return; } aLine = aLine.SubString(EndIndex+1,aLine.Length()-EndIndex); StartIndex = aLine.Pos("="); EndIndex = aLine.Pos(">"); if (StartIndex && EndIndex) { StartIndex += 1; // Skip ´=´ *aWeapons = aLine.SubString(StartIndex,EndIndex-StartIndex); }else { // Error could not read Weapons from file return; } } void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Name,Weapon,Points; TStringList* L; L = new TStringList(); L->LoadFromFile("\\Source\\Test.txt"); for (int i=0; i<L->Count; i++) { ReadLine(L->Strings[i],&Name,&Points,&Weapon); Memo1->Lines->Add("Name:"+Name); Memo1->Lines->Add("Points:"+Points); Memo1->Lines->Add("Fav. Våben:"+Weapon); Memo1->Lines->Add("------------"); } }
16. marts 2002 - 00:07
#3
Ja CBuilder er C++. Du kan tage ovenstående som en fremgangsmåde. 1. Indlæs filen i et array af strings/chars. 2. For hver linie parse indholdet (gøres med ReadLine). 3. Udskriv resultatet fra ReadLine i et vindue. Hvilket udviklingsværktøj bruger du ?