Qt는

2013-05-24 6 views
0

에있는 파일의 정수를 읽고 난 이렇게되면 여러 줄 텍스트 파일을 가지고 :Qt는

1,1 
2 
7,7 
11,11 

13,13 

0,0 
내가 텍스트 파일 시스템을 사용하는 모든 정수를 받아 변수에 할당하고 싶은

그 Qt가 제공합니다. 나는 모든 라인을 읽은 다음에 QString::split()을 사용하는 것에 대해 생각해 봤지만, 이것을하기 더 쉬운 방법이 있다고 생각한다.

+5

'std :: ifstream'은 좋은 출발점입니다. –

+0

결과가 정확히 보이길 원하십니까? int 배열을 얻고 싶습니까? 각 행은 int 배열입니다. 또는 무엇을? – abarnert

+0

또한, 실제로 다른 수의 값을 가진 행을 갖고 있습니까? 아니면 '2'모두 자체적으로 실수입니까? 데이터가 CSV 인 경우 [Qt 용 CSV 솔루션] (http://qt-project.org/search/tag/csv))이 이미 구축되어 있지만 여기서 도움이되지 않을 수 있습니다. – abarnert

답변

1

QFile :: readAll을 사용하여 생성자의 QString으로 전달하고 QStringList로 분할 한 다음 toInt 함수를 사용하여 반복합니다.

더 나은 목적에 맞게 편집 한이 간단한 콘솔 테스트 응용 프로그램입니다 (나는 숫자가 2 인 줄은 실수이고 모든 줄에는 적어도 두 개의 숫자가 있어야 함).

MAIN.CPP :

QFile f("file.txt"); 
f.open(QIODevice::ReadOnly); 
foreach (QString i,QString(f.readAll()).split(QRegExp("[\r\n]"),QString::SkipEmptyParts)){ 
    QPoint pos; 
    pos.setX(i.section(",",0,0).toInt()); 
    pos.setY(i.section(",",1,1).toInt()); 
    // draw something here, pos holds your coords in x as first valur and in y second (pos.x(), pos.y()) 
    qDebug()<<pos; 
} 
f.close(); 

당신의 좌표가의 QPoint POS를 개최, 그것은 한 번에 좌표의 한 줄이있을 것이다, 그래서 당신은 지점을 그리거나 당신이 그들과 함께 원하는대로 할 수 있습니다. file.txt은 바이너리 파일이있는 디렉토리에 있어야합니다. 그렇지 않으면 변경 될 수 있습니다.