• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczytywanie z pliku txt w js

VPS Starter Arubacloud
0 głosów
2,683 wizyt
pytanie zadane 10 listopada 2017 w JavaScript przez Wojciech Tuszkiewicz Użytkownik (500 p.)
Witam czy za pomocą javascript bez JQuery i.t.p. da się odczytywać z pliku txt.

php też odpada bo robię z bratem stronę na arduino a ono nie posiada tego interpretera php czy jak to się tam nazywa, a JQuery też nie działa na arduino.

 

Ewentualnie  jak by zrobić aby arduino obsługiwało JQuery.
komentarz 10 listopada 2017 przez ScriptyChris Mędrzec (190,190 p.)

JQuery też nie działa na arduino

Dlaczego miało by nie działać? jQuery to biblioteka języka JavaScript, więc jeśli na Arduino masz zainstalowaną przeglądarkę internetową lub Node.js, to podpięcie jQuery nie powinno stanowić problemu.

komentarz 12 listopada 2017 przez Wojciech Tuszkiewicz Użytkownik (500 p.)

JQuery nie działa chociaż mam pobraną bibliotekę JQuery i podpiętą do strony. To czemu nie działa? I oco chodzi  ci z :

 

więc jeśli na Arduino masz zainstalowaną przeglądarkę internetową lub Node.js,

komentarz 12 listopada 2017 przez ScriptyChris Mędrzec (190,190 p.)

Czy na Arduino masz zainstalowaną przeglądarkę internetową?

Jeśli tak i wspiera ona język JavaScript, to powinna obsługiwać jQuery - bo to po prostu biblioteka napisana w JS. Jeśli próbujesz to zrobić w przeglądarce, ale napotykasz na problem, to wstaw kod HTML i zawartość konsoli przeglądarki (jeśli zawiera błędy).

Jeśli nie, to zainstaluj środowisko Node.js (możesz przez linię komend - poszukaj, jak to zrobić - np. w ten sposób) i z pomocą npm (wchodzi w skład Node, przynajmniej na Windows) pobierz i zainstaluj jQuery.

komentarz 12 listopada 2017 przez Wojciech Tuszkiewicz Użytkownik (500 p.)

W jakim sensie 

Czy na Arduino masz zainstalowaną przeglądarkę internetową?

Bo nie rozumiem 

komentarz 12 listopada 2017 przez ScriptyChris Mędrzec (190,190 p.)
Co w tym pytaniu jest niezrozumiałego? Przeglądarka internetowa to program. Tak, jak na komputerze ją instalujesz, tak i na Arduino możesz, jeśli masz system operacyjny, który to umożliwi. Czy masz na Arduino zainstalowany jakiś system operacyjny (jaki?)? W jaki sposób podłączasz jQuery? Dlaczego twierdzisz, że nie działa - w jaki sposób to sprawdzasz?

Powtórzę - pokaz kod i podaj więcej informacji, bo nie będę w stanie pomóc Ci jeśli nie podasz więcej szczegółów.
komentarz 12 listopada 2017 przez Wojciech Tuszkiewicz Użytkownik (500 p.)

Czy masz na Arduino zainstalowany jakiś system operacyjny 

Nie

 W jaki sposób podłączasz jQuery?

 <script src="jquery-3.2.1.min.js"></script>

Strona znajduje się na karcie pamięci tak samo jak biblioteka JQuery

Dlaczego twierdzisz, że nie działa - w jaki sposób to sprawdzasz?

Normalnie, wpisuje na komputerze adres ip arduina a na stronie jest np.

Adres do przykładu JQuery który mam na stronie arduino

jak jestem na stronie arduina to sprawdzam czy JQuery się wykonuje.

Kod Arduino

include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
 
// size of buffer used to capture HTTP requests
#define REQ_BUF_SZ   20
 
// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 20); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80
File webFile;
char HTTP_req[REQ_BUF_SZ] = {0}; // buffered HTTP request stored as null terminated string
char FileName[10];
char req_index = 0;              // index into HTTP_req buffer
 
void setup()
{
    pinMode(2, OUTPUT);
    pinMode(7, OUTPUT);
    // disable Ethernet chip
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);
     
    Serial.begin(9600);       // for debugging
     
    // initialize SD card
    Serial.println("Initializing SD card...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - SD card initialization failed!");
        return;    // init failed
    }
    Serial.println("SUCCESS - SD card initialized.");
    // check for index.htm file
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // can't find index file
    }
    Serial.println("SUCCESS - Found index.htm file.");
     
    Ethernet.begin(mac, ip);  // initialize Ethernet device
    server.begin();           // start to listen for clients
}
 
void loop()
{
    EthernetClient client = server.available();  // try to get client
 
    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c = client.read(); // read 1 byte (character) from client
                // buffer first part of HTTP request in HTTP_req array (string)
                // leave last element in array as 0 to null terminate string (REQ_BUF_SZ - 1)
                if (req_index < (REQ_BUF_SZ - 1)) {
                    HTTP_req[req_index] = c;          // save HTTP request character
                    req_index++;
                }
                // print HTTP request character to serial monitor
                Serial.print(c);
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                if (c == '\n' && currentLineIsBlank) {
                    // open requested web page file
                    findFileName(HTTP_req);
                    if (StrContains(HTTP_req, "GET / ")
                                 || StrContains(HTTP_req, "GET /index.htm")) {
                        client.println("HTTP/1.1 200 OK");
                        client.println("Content-Type: text/html");
                        client.println("Connnection: close");
                        client.println();
                        webFile = SD.open("index.htm");        // open web page file
                    }
                    else if (StrContains(HTTP_req, "GET /jquery.js")) {
                        webFile = SD.open("jquery.js");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: application/javascript");
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /script.js")) {
                        webFile = SD.open("script.js");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: application/javascript");
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /style.css")) {
                        webFile = SD.open("style.css");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: text/css");
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /favicon.ico")) {
                        webFile = SD.open("favicon.ico");
                        if (webFile) {
                            client.println("HTTP/1.1 200 OK");
                            client.println("Content-Type: image/x-icon");                            
                            client.println();
                        }
                    }
                    else if (StrContains(HTTP_req, "GET /on")) {
                            digitalWrite(2, HIGH); 
                            digitalWrite(7, HIGH);
                         //   client.println("LEDs have been turned <span class="green">ON</span>!");                        
                    }
                    else if (StrContains(HTTP_req, "GET /off")) {
                            digitalWrite(2, LOW); 
                            digitalWrite(7, LOW);
//                            client.println("LEDs have been turned <span class="red">OFF</span>!");                        
                    }
                    if (webFile) {
                        while(webFile.available()) {
                            client.write(webFile.read()); // send web page to client
                        }
                        webFile.close();
                    }
                    // reset buffer index and all buffer elements to 0
                    req_index = 0;
                    StrClear(HTTP_req, REQ_BUF_SZ);
                    break;
                }
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                } 
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        client.stop(); // close the connection
    } // end if (client)
}
 
// sets every element of str to 0 (clears array)
void StrClear(char *str, char length)
{
    for (int i = 0; i < length; i++) {
        str[i] = 0;
    }
}
 
// searches for the string sfind in the string str
// returns 1 if string found
// returns 0 if string not found
void findFileName(char *str1)  {
   
  char *fname;
   
   
  if (strstr (str1, "GET / ") != 0) {
    // send a standard http response header ------ a page to display has been found  
  }
  else if (strstr (str1, "GET /") != 0) {
          fname = str1 + 5; // look after the "GET /" (5 chars)
          // a little trick, look for the " HTTP/1.1" string and 
          // turn the first character of the substring into a 0 to clear it out.
          (strstr (str1, " HTTP"))[0] = 0;
          // print the file we want
          Serial.print("Filename is ");
          Serial.println(fname); 
          Serial.print("Extension is ");
          Serial.println(get_filename_ext(fname));     
  }
}
 
const char *get_filename_ext(const char *filename) {
    const char *dot = strrchr(filename, '.');
    if(!dot || dot == filename) return "";
    return dot + 1;
}
 
char StrContains(char *str, char *sfind)
{
    char found = 0;
    char index = 0;
    char len;
 
    len = strlen(str);
     
    if (strlen(sfind) > len) {
        return 0;
    }
    while (index < len) {
        if (str[index] == sfind[found]) {
            found++;
            if (strlen(sfind) == found) {
                return 1;
            }
        }
        else {
            found = 0;
        }
        index++;
    }
 
    return 0;
}

 

  

komentarz 12 listopada 2017 przez ScriptyChris Mędrzec (190,190 p.)
W jaki sposób bez systemu operacyjnego serwujesz stronę?

Jeśli dobrze zrozumiałem, to zrobiłeś stronkę podobną lub kopię tej podlinkowanej z W3Schools z podpiętym jQuery i zapisałeś ją na karcie pamięci. Z komputera wpisujesz adres IP przypisany do Arduino w sieci lokalnej i oczekujesz, że strona się pojawi? Jeśli nie serwujesz tej strony, to się nie pojawi - jQuery nie ma tu nic do rzeczy. Najpierw musisz postawić jakiś serwer na Arduino (czy to korzystając z jakiegoś XAMPP, czy Apache, czy Node), tam wgrać stronkę, a potem nie tylko wpisać IP, ale podać też ścieżkę do hostowanego pliku strony.

Co widzisz na komputerze po wpisaniu IP Arduino? Możesz wrzucić screena.
komentarz 13 listopada 2017 przez Wojciech Tuszkiewicz Użytkownik (500 p.)
Ale Arduino jest serwerem dla strony.

A Arduino przecież nie posiada systemu operacyjnego. Przecież do Arduino tylko wprowadzasz kod i wgrywasz.
komentarz 3 kwietnia 2018 przez uffooo Nowicjusz (100 p.)
-ciach- Po dodaniu komentarza rozwinął mi się kod powyżej i zobaczyłem obsługę HTTP :P

1 odpowiedź

0 głosów
odpowiedź 10 listopada 2017 przez niezalogowany

Zapewne działa to na node'dzie - jeśli tak, użyj fs (najprościej będzie synchronicznie)

const fs = require('fs');

const data = fs.readFileSync('./sciezka/do/pliku.txt', 'utf8');

Podobne pytania

+1 głos
2 odpowiedzi 346 wizyt
pytanie zadane 8 sierpnia 2018 w C i C++ przez zendurix Nowicjusz (130 p.)
0 głosów
0 odpowiedzi 1,671 wizyt
pytanie zadane 19 listopada 2017 w C i C++ przez edglrdmmslt Nowicjusz (120 p.)
+1 głos
3 odpowiedzi 3,474 wizyt

92,454 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...