Avatar billede lost-sniper Nybegynder
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
Avatar billede laffe Nybegynder
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("------------");
  }
}
Avatar billede lost-sniper Nybegynder
16. marts 2002 - 00:02 #2
Er CBuilder C++ ?
og jeg har ikke CBuilder
Avatar billede laffe Nybegynder
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 ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Netcompany A/S

Network Engineer

Unik System Design A/S

QA Engineer

SOS International

License & Vendor Manager

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Lead DevSecOps