Autor
Nachricht
Tim06TR
Mitglied
Benutzerprofil
Anmeldungsdatum: 14.03.2009
Beiträge: 1308
Tim06TR Mitglied
17:33:08 02.09.2010 Titel:
Schön oder Mist ?
Zitieren
Ich habe dies in einer Schleife benutzt, um von [...] bis zum Ende zu lesen,
ist das schön oder eher weniger ?
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
EDIT: Ganz nebenbei löst das ein Compiler Bug in 2009 aus, der mit //" zu lösen ist.
er setzt ∞ oft } nach der Schleife
_________________ "Wie ein Komponist an seinem Klavier gleitet der Programmierer über die Tasten auf der Suche nach der perfekten Komposition" ~me --- Wehe ihr lest meine alten posts !
Zuletzt bearbeitet von Tim06TR am 17:34:07 02.09.2010, insgesamt 1-mal bearbeitet
VergissEs
Mitglied
Benutzerprofil
Anmeldungsdatum: 28.06.2001
Beiträge: 1010
VergissEs Mitglied
18:39:11 02.09.2010 Titel:
Re: Schön oder Mist ?
Zitieren
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
Wenn das deine Abbruchbedingung ist, dann ist das unschön.
wiso nicht:
C/C++ Code: int iRow=0; // dein begin [...]
for (iRow; iRow< Setup->Count; ++iRow) {
Setup->Strings[iRow] //du was du willst mit den Zeilen
}
C/C++ Code: int iRow=0; // dein begin [...]
for (iRow; iRow< Setup->Count; ++iRow) {
Setup->Strings[iRow] //du was du willst mit den Zeilen
}
C/C++ Code: int iRow=0; // dein begin [...]
for (iRow; iRow< Setup->Count; ++iRow) {
Setup->Strings[iRow] //du was du willst mit den Zeilen
}
_________________ MfG
VergissEs
Tim06TR
Mitglied
Benutzerprofil
Anmeldungsdatum: 14.03.2009
Beiträge: 1308
Tim06TR Mitglied
14:43:24 03.09.2010 Titel:
Zitieren
VergissEs schrieb: Wenn das deine Abbruchbedingung ist, dann ist das unschön.
Ists nicht
Sind mehrere Abragen im Code und je nachdem was zutrifft, wird der entsprechende Abschnitt einem String hinzugefügt, bis ein Zeichen kommt, aber am Ende kommt... das Ende. (Nullterminierung)
_________________ "Wie ein Komponist an seinem Klavier gleitet der Programmierer über die Tasten auf der Suche nach der perfekten Komposition" ~me --- Wehe ihr lest meine alten posts !
Braunstein
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.05.2002
Beiträge: 6689
Braunstein Mitglied
16:41:14 03.09.2010 Titel:
Zitieren
Zumindest könnte man das hier
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
C/C++ Code: Setup->Strings[i].SubString(Echar,1) != "\0 "
durch das hier ersetzen
C/C++ Code: Setup->Strings[i][Echar] != '\0 '
C/C++ Code: Setup->Strings[i][Echar] != '\0 '
C/C++ Code: Setup->Strings[i][Echar] != '\0 '
So eine Abfrage kommt mir aber auch komisch vor. Da kann man bestimmt den Algorithmus verbessern.
Tim06TR
Mitglied
Benutzerprofil
Anmeldungsdatum: 14.03.2009
Beiträge: 1308
Tim06TR Mitglied
18:33:34 03.09.2010 Titel:
Zitieren
Wenn du meinst
C/C++ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
TStringList* Setup = new TStringList;
while (i < Setup->Count)
{
i++;
int Echar = 0;
//Setup->Strings[i-1]
if (Setup->Strings[i-1][Echar] == 'X ')
{
Echar+=2;
String X;
while (Setup->Strings[i-1].SubString(Echar,1) != "Y ")
{
Echar++;
X += Setup->Strings[i-1].SubString(Echar,1);
}
X = X.SubString(0,X.Length()-1);
ShowMessage(X);
}
if (Setup->Strings[i-1][Echar] == 'Y ')
{
Echar+=2;
String Y;
while (Setup->Strings[i-1].SubString(Echar,1) != "\0 ")
{
Echar++;
Y += Setup->Strings[i-1].SubString(Echar,1);
}
ShowMessage(Y);
}
}
C/C++ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
TStringList* Setup = new TStringList;
while (i < Setup->Count)
{
i++;
int Echar = 0;
//Setup->Strings[i-1]
if (Setup->Strings[i-1][Echar] == 'X ')
{
Echar+=2;
String X;
while (Setup->Strings[i-1].SubString(Echar,1) != "Y ")
{
Echar++;
X += Setup->Strings[i-1].SubString(Echar,1);
}
X = X.SubString(0,X.Length()-1);
ShowMessage(X);
}
if (Setup->Strings[i-1][Echar] == 'Y ')
{
Echar+=2;
String Y;
while (Setup->Strings[i-1].SubString(Echar,1) != "\0 ")
{
Echar++;
Y += Setup->Strings[i-1].SubString(Echar,1);
}
ShowMessage(Y);
}
}
C/C++ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
TStringList* Setup = new TStringList;
while (i < Setup->Count)
{
i++;
int Echar = 0;
//Setup->Strings[i-1]
if (Setup->Strings[i-1][Echar] == 'X ')
{
Echar+=2;
String X;
while (Setup->Strings[i-1].SubString(Echar,1) != "Y ")
{
Echar++;
X += Setup->Strings[i-1].SubString(Echar,1);
}
X = X.SubString(0,X.Length()-1);
ShowMessage(X);
}
if (Setup->Strings[i-1][Echar] == 'Y ')
{
Echar+=2;
String Y;
while (Setup->Strings[i-1].SubString(Echar,1) != "\0 ")
{
Echar++;
Y += Setup->Strings[i-1].SubString(Echar,1);
}
ShowMessage(Y);
}
}
(X: Y: geben mausklickpositionen an, die später simuliert werden, hier werden sie gelesen)
Datei:
Zitat: ChampionName oder was anderes
ClientPosition_X: 0 ClientPosition_Y: 0
stan****
X: 805 Y: 618
X: 805 Y: 618
X: 805 Y: 618
X: 805 Y: 618
X: 1162 Y: 481
X: 1156 Y: 393
X: 1220 Y: 349
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
X: 1216 Y: 339
EDIT : REFORMAT
_________________ "Wie ein Komponist an seinem Klavier gleitet der Programmierer über die Tasten auf der Suche nach der perfekten Komposition" ~me --- Wehe ihr lest meine alten posts !
Zuletzt bearbeitet von Tim06TR am 18:36:21 03.09.2010, insgesamt 2-mal bearbeitet
VergissEs
Mitglied
Benutzerprofil
Anmeldungsdatum: 28.06.2001
Beiträge: 1010
VergissEs Mitglied
21:43:44 03.09.2010 Titel:
Zitieren
Ich werf mal den Code ins rennen.
C/C++ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#include <vector>
#include <memory>
std::vector<TPoint> Points;
std::auto_ptr<TStringList> Setup(new TStringList());
Setup->LoadFromFile(DieDatei);
int XPos, YPos;
TPoint MyPoint;
for (int i=0; i < Setup->Count; i++) {
XPos = Setup->Strings[i].Pos("X: ");
YPos = Setup->Strings[i].Pos("Y: ");
if (XPos > 0 && YPos > 0) {
MyPoint.x = Trim(Setup->Strings[i].SubString(XPos+2, YPos-XPos-2)).ToIntDef(-1);
MyPoint.y = Trim(Setup->Strings[i].SubString(YPos+2, Setup->Strings[i].Length()-YPos-1)).ToIntDef(-1);
if (MyPoint.x != -1 && MyPoint.y != -1) Points.push_back( MyPoint );
}
}
}
C/C++ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#include <vector>
#include <memory>
std::vector<TPoint> Points;
std::auto_ptr<TStringList> Setup(new TStringList());
Setup->LoadFromFile(DieDatei);
int XPos, YPos;
TPoint MyPoint;
for (int i=0; i < Setup->Count; i++) {
XPos = Setup->Strings[i].Pos("X: ");
YPos = Setup->Strings[i].Pos("Y: ");
if (XPos > 0 && YPos > 0) {
MyPoint.x = Trim(Setup->Strings[i].SubString(XPos+2, YPos-XPos-2)).ToIntDef(-1);
MyPoint.y = Trim(Setup->Strings[i].SubString(YPos+2, Setup->Strings[i].Length()-YPos-1)).ToIntDef(-1);
if (MyPoint.x != -1 && MyPoint.y != -1) Points.push_back( MyPoint );
}
}
}
C/C++ Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
#include <vector>
#include <memory>
std::vector<TPoint> Points;
std::auto_ptr<TStringList> Setup(new TStringList());
Setup->LoadFromFile(DieDatei);
int XPos, YPos;
TPoint MyPoint;
for (int i=0; i < Setup->Count; i++) {
XPos = Setup->Strings[i].Pos("X: ");
YPos = Setup->Strings[i].Pos("Y: ");
if (XPos > 0 && YPos > 0) {
MyPoint.x = Trim(Setup->Strings[i].SubString(XPos+2, YPos-XPos-2)).ToIntDef(-1);
MyPoint.y = Trim(Setup->Strings[i].SubString(YPos+2, Setup->Strings[i].Length()-YPos-1)).ToIntDef(-1);
if (MyPoint.x != -1 && MyPoint.y != -1) Points.push_back( MyPoint );
}
}
}
_________________ MfG
VergissEs
berlinbär
Unregistrierter
berlinbär Unregistrierter
21:54:02 03.09.2010 Titel:
Zitieren
C/C++ Code: 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
int posx,posy;
int x,y;
for (int i=0;i<Setup->Count;i++)
{
posx=Setup->Strings[i].Pos("X: ");
posy=Setup->Strings[i].Pos("Y: ");
ShowMessage(Setup->Strings[i].SubString(posx+3,posy-posx-4));
ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
}
C/C++ Code: 1 2 3 4 5 6 7 8 9
int posx,posy;
int x,y;
for (int i=0;i<Setup->Count;i++)
{
posx=Setup->Strings[i].Pos("X: ");
posy=Setup->Strings[i].Pos("Y: ");
ShowMessage(Setup->Strings[i].SubString(posx+3,posy-posx-4));
ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
}
C/C++ Code: 1 2 3 4 5 6 7 8 9
int posx,posy;
int x,y;
for (int i=0;i<Setup->Count;i++)
{
posx=Setup->Strings[i].Pos("X: ");
posy=Setup->Strings[i].Pos("Y: ");
ShowMessage(Setup->Strings[i].SubString(posx+3,posy-posx-4));
ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
}
VergissEs
Mitglied
Benutzerprofil
Anmeldungsdatum: 28.06.2001
Beiträge: 1010
VergissEs Mitglied
22:07:38 03.09.2010 Titel:
Zitieren
berlinbär schrieb: C/C++ Code: 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
int posx,posy;
int x,y;
for (int i=0;i<Setup->Count;i++)
{
posx=Setup->Strings[i].Pos("X: ");
posy=Setup->Strings[i].Pos("Y: ");
ShowMessage(Setup->Strings[i].SubString(posx+3,posy-posx-4));
ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
}
C/C++ Code: 1 2 3 4 5 6 7 8 9
int posx,posy;
int x,y;
for (int i=0;i<Setup->Count;i++)
{
posx=Setup->Strings[i].Pos("X: ");
posy=Setup->Strings[i].Pos("Y: ");
ShowMessage(Setup->Strings[i].SubString(posx+3,posy-posx-4));
ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
}
C/C++ Code: 1 2 3 4 5 6 7 8 9
int posx,posy;
int x,y;
for (int i=0;i<Setup->Count;i++)
{
posx=Setup->Strings[i].Pos("X: ");
posy=Setup->Strings[i].Pos("Y: ");
ShowMessage(Setup->Strings[i].SubString(posx+3,posy-posx-4));
ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
}
Obacht geben da wird die Zeile
C/C++ Code: ClientPosition_X: 0 ClientPosition_Y: 0
C/C++ Code: ClientPosition_X: 0 ClientPosition_Y: 0
C/C++ Code: ClientPosition_X: 0 ClientPosition_Y: 0
auch mit angezeigt
bzw. in
Code: ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
Code: ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
Code: ShowMessage(Setup->Strings[i].SubString(posy+3,Setup->Strings[i].Length()-posy-posx+1));
-posy-posx+1 kann nicht stimmen
_________________ MfG
VergissEs
Zuletzt bearbeitet von VergissEs am 22:09:37 03.09.2010, insgesamt 1-mal bearbeitet
taper71
Unregistrierter
taper71 Unregistrierter
18:04:16 04.09.2010 Titel:
Zitieren
Wenn sich am Aufbau der Daten nichts ändert dann so:
C/C++ Code: 1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
Setup->Delimiter=' ';
Setup->LoadFromFile("liste.txt ");
Setup->DelimitedText = Setup->Text;
for (int i=0;i<Setup->Count-1;i++)
{
if (Setup->Strings [i]=="X: ") ShowMessage("X: "+Setup->Strings[i+1]);
else if (Setup->Strings [i]=="Y: ") ShowMessage("Y: "+Setup->Strings[i+1]);
}
C/C++ Code: 1 2 3 4 5 6 7 8
Setup->Delimiter=' ';
Setup->LoadFromFile("liste.txt ");
Setup->DelimitedText = Setup->Text;
for (int i=0;i<Setup->Count-1;i++)
{
if (Setup->Strings [i]=="X: ") ShowMessage("X: "+Setup->Strings[i+1]);
else if (Setup->Strings [i]=="Y: ") ShowMessage("Y: "+Setup->Strings[i+1]);
}
C/C++ Code: 1 2 3 4 5 6 7 8
Setup->Delimiter=' ';
Setup->LoadFromFile("liste.txt ");
Setup->DelimitedText = Setup->Text;
for (int i=0;i<Setup->Count-1;i++)
{
if (Setup->Strings [i]=="X: ") ShowMessage("X: "+Setup->Strings[i+1]);
else if (Setup->Strings [i]=="Y: ") ShowMessage("Y: "+Setup->Strings[i+1]);
}
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.