---
title: "Parsa textfil"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/51754-parsa-textfil"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Alpha II"
published: "2002-08-30T13:34:51.000Z"
updated: "2002-08-30T14:44:15.000Z"
replies: 6
views: 218
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/51754-parsa-textfil"
---

# Parsa textfil

## #1 — Alpha II, 2002-08-30T13:34Z

Hur läser man igenom en textfil så att man får variablarna X, Y och Z?

Textfilen ser ut så här:

> Vertex 0:  X:-31.8621     Y:29.8309     Z:5.7799
> Vertex 1:  X:-31.8621     Y:-20.1691     Z:5.7799
> Vertex 2:  X:-21.1474     Y:29.8309     Z:0.9133
> Vertex 3:  X:-21.1474     Y:-20.1691     Z:0.9133
> Vertex 4:  X:-31.8621     Y:29.8309     Z:21.3961
> osv...
>
>
> > testade med:
> >
> >
> > ```
> >       X := StrToFloat(Trim(Copy(S, 12 + Length(IntToStr(i)), 13)));
> >       Y := StrToFloat(Trim(Copy(S, 27 + Length(IntToStr(i)), 13)));
> >       Z := StrToFloat(Trim(Copy(S, 39 + Length(IntToStr(i)), 13)));
> > ```
> >
> > 
> > Men jag får bara felmedelanden...

Permalänk: https://www.webforum.nu/p/51754

## #2 — Alpha II, 2002-08-30T13:46Z

Glöm den där frågan... Tror jag vet hur jags ska fixa det. Men jag måste ersätta '.' med ',' hur gör jag det??

Permalänk: https://www.webforum.nu/p/768811

## #3 — Marcus E, 2002-08-30T13:54Z

Funktionen StringReplace?

Permalänk: https://www.webforum.nu/p/768828

## #4 — Alpha II, 2002-08-30T14:13Z

Gick inte så bra som jag trodde.... grrrr..... blir hel konstigt.... varför returnerar inte  StrPos en integer istllet för en PChar pekare??? :o Blir acces violation eller nått :OO

```
  for i := 0 to Vertices-1 do begin
    glBegin(GL_TRIANGLES);

    ReadLn(F, S);
    Pos := StrToInt(StrPos(PChar(S), PChar('X')));
    X := StrToFloat(StringReplace(Trim(Copy(S, Pos + 2, 10)), '.', ',', [rfReplaceAll]));
    Pos := StrToInt(StrPos(PChar(S), PChar('Y')));
    Y := StrToFloat(StringReplace(Trim(Copy(S, Pos + 2, 10)), '.', ',', [rfReplaceAll]));
    Pos := StrToInt(StrPos(PChar(S), PChar('Z')));
    Z := StrToFloat(StringReplace(Trim(Copy(S, Pos + 2, Length(S)-(Pos+29)-1)), '.', ',', [rfReplaceAll]));
    glVertex3f(X, Y, Z);

    glEnd();
  end;
```

Permalänk: https://www.webforum.nu/p/768850

## #5 — jt, 2002-08-30T14:27Z

Du kanske skulle testa Pos istället.

Såg att du använder en variabel  som heter Pos, jag menar funktionen System.Pos.

Permalänk: https://www.webforum.nu/p/768867

## #6 — Alpha II, 2002-08-30T14:40Z

Hmm fattor inte varför men Position får värdet 0 :(

```
procedure TASCObject.LoadASCFile(Filename: String);
var
  F: TextFile;
  S: String;
  Position: Integer;
  I: Integer;
  Vertices: Integer;
  X, Y, Z: GLfloat;
begin
  AssignFile(F, Filename);
  Reset(F);
  ReadLn(F, S);
  ReadLn(F, S); 
  Vertices := StrToInt(Trim(Copy(S, 20, 8)));
  ReadLn(F, S); // Move down 1 line

  Obj := glGenLists(1);
  glNewList(Obj, GL_COMPILE);
  for i := 0 to Vertices-1 do begin
    glBegin(GL_TRIANGLES);

    ReadLn(F, S);
    Position := Pos(S, 'X:');
    X := StrToFloat(StringReplace(Trim(Copy(S, Position + 2, 10)), '.', ',', [rfReplaceAll]));
    Position := Pos(S, 'Y:');
    Y := StrToFloat(StringReplace(Trim(Copy(S, Position + 2, 10)), '.', ',', [rfReplaceAll]));
    Position := Pos(S, 'Z:');
    Z := StrToFloat(StringReplace(Trim(Copy(S, Position + 2, Length(S)-(Position+2)-1)), '.', ',', [rfReplaceAll]));
    glVertex3f(X, Y, Z);

    glEnd();
  end;
  glEndList();
end;
```

 ojdå ;) hade skrivit pos(s, 'x') istället för pos('x', s) som det skulle vara :)

Permalänk: https://www.webforum.nu/p/768877

## #7 — Alpha II, 2002-08-30T14:44Z

Eller finns det nån färdig kod för delphi att ladda  3d objekt i format som man kan spara i från 3dsmax?

Hittade en kod att ladda 3ds filer. problemet var att det var c++ och 1000 rader... lite för mycket att konvertera :(

Permalänk: https://www.webforum.nu/p/768880

---

Tråden på webben: https://www.webforum.nu/amne/programmering/51754-parsa-textfil
