Ionic 3: чтение файла построчно и циклический возврат - PullRequest
0 голосов
/ 22 октября 2018

Я работаю над сценарием, который должен извлекать запросы SQL в файле .sql, расположенном в ./assets/, для выполнения этих запросов в моей локальной БД с помощью Ionic 3. Идея состоит в том, что я хотел бы открыть файл, сохраняйте каждую строку отдельно в массиве, затем зацикливайте этот массив с помощью самодельной функции executeSqlQuery ().

До сих пор, я думаю, я смог открыть файл благодаря модулю httpClient, но не так многоподробнее ... Я смотрел на модуль File (родной), но не смог ничего сделать даже с большим количеством документации и тестов.

Вот что я сделал, и я не знаюкак перейти от открытия './assets/queries.sql' к executeSqlQuery (запросы [i]):

Выдержка query.sql:

INSERT INTO `attaquesinf` VALUES ('bandaltchagui','circulaire','Bandal Tchagui','Bandal Chagi','Coup de pied circulaire niveau moyen.',NULL,NULL,NULL);
INSERT INTO `attaquesinf` VALUES ('dolyotchagui','circulaire','Dolyo Tchagui','Doleo Chagi','Coup de pied circulaire niveau haut.',NULL,NULL,NULL);
INSERT INTO `attaquesinf` VALUES ('biteurotchagui','crochet','Biteuro Tchagui','Biteureo Chagi','Coup de pied de l''intérieur vers l''extérieur dans un mouvement de torsion, avec le bol du pied.',NULL,NULL,NULL);
INSERT INTO `attaquesinf` VALUES ('nakkattchagui','crochet','Nakkat Tchagui','Nakka Chagi','Coup de pied crochet, frappe avec le talon.',NULL,NULL,NULL);

Выдержка из ExPage.ts:

import { Observable } from 'rxjs/Observable';
import { HttpClient } from '@angular/common/http';

...

export class ExPage {
    infsql: Observable<any>;

    constructor(public httpClient: HttpClient) {
        this.infsql = this.httpClient.get('./asset/queries.sql')
        this.infsql
            .subscribe(data => {
                console.log('my data: ', data);
            // ====> How can I use data ??
            // ====> How can I loop through the content and executeSqlQuery(each line) ?
            },
            error => {
            console.log("Error reading config file " + error.message + ", " + error.code);
            });
      }
  };
...

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 23 октября 2018

Мне удалось найти решение после ...... нескольких часов тестирования.Наконец, я выбрал метод Http.get, который выполняет задания.

В ExPages.ts:

import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
...

export class ExPage {

    requests: Array<{string}>;     //the final array that will contain each line of .sql file
    testtext: string;              //a variable we'll use to test the content of the request
    ...


    constructor(public http: Http) {

        this.http.get('../assets/queries.sql')               //gets the file
                 .map(res => res.text())                      //maps it as text
                 .subscribe(data => {                         //saves the data in our array
                     this.requests = data.split('\n');
                     this.testtext = this.requests[20];
                 })
    }
}

В ExPages.html:

<p>20th SQL query : {{ testtext }}</p>

Отобразится21-я строка моего assets/queries.sql файла, так как индекс нашего массива request начинается с 0.

Спасибо за вашу помощь @millimoose:)

...