Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-04-2006, 11:04   #1
dj_ste
Senior Member
 
L'Avatar di dj_ste
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1644
[C] confrontare stringhe e parole in un file

Ho un problema.
Ho un file che è strutturato in questo modo:

ciao;casa
gaia;topino
pappa;ciccia
ecc;ecc

e ho anche 2 stringhe salvate in 2 variabili distinte.
quello che devo fare è ad esempio confrontare se la stringa 1 è uguale a ciao e la stringa 2 a casa. oppure la prima stringa a pappa e la seconda a ciccio.

praticamente è come se le due stringhe che ho già salvato siano username e password e se queste due parole sono presenti nel file separate da una virgola l'utente è autenticato a fare qualcosa.

come faccio?
dj_ste è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 11:55   #2
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
allora devi fare un parser del file ... ti basta inizialmente tirare su pappa;ciccia esempio poi fai una divisione della stringa e li confronti ... ci dovrebbe essere se non erro già qualche funzione nelle librerie string.h che fanno la divisione ... token qualcosa si dovrebbe chiamare ... altrimenti ti ricerchi te dove è messo il ;
Per il confronto usa strcmp ovviamente assicurati che esista il terminatore di stringa.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 12:14   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Codice:
STRTOK(3)                  Linux Programmer's Manual                 STRTOK(3)

NAME
       strtok, strtok_r - extract tokens from strings
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 12:22   #4
dj_ste
Senior Member
 
L'Avatar di dj_ste
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1644
mmm, non ho capito molto...
per prima cosa devo caricare il file, poi come faccio a confrontare la prima riga con le due stringhe? ciascuna riga termina con \n ovviamente
dj_ste è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 12:46   #5
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da DanieleC88
Codice:
STRTOK(3)                  Linux Programmer's Manual                 STRTOK(3)

NAME
       strtok, strtok_r - extract tokens from strings
mi ricordavo giusto che esisteva


~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 13:21   #6
dj_ste
Senior Member
 
L'Avatar di dj_ste
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1644
come faccio a leggere dal file una riga per volta?
poi quella riga la salvo in un buffer e poi la divido, giusto?
potreste scrivermi qualche riga di codice per farmi capire?
dj_ste è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 14:21   #7
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Prova con questo:
Codice:
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>

int main()
{
  char * Token;
  char * Stringa;
  char * Line;
  int Length;
  FILE * File;

  File = fopen("prova.txt", "r");
    getline(&Line, &Length, File);
    for (Stringa = strtok(Line, ";"); Stringa != NULL; Token = strtok(NULL, ";")) {
      printf("Stringa: %s.\n", strndup(Stringa, (size_t)(Token-Stringa)));
      Stringa = Token;
    }
  fclose(File);
  return 0;
}
Non l'ho provato, ma dovrebbe andare (spero).
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 15:02   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da DanieleC88
Prova con questo:
Codice:
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>

int main()
{
  char * Token;
  char * Stringa;
  char * Line;
  int Length;
  FILE * File;

  File = fopen("prova.txt", "r");
    getline(&Line, &Length, File);
    for (Stringa = strtok(Line, ";"); Stringa != NULL; Token = strtok(NULL, ";")) {
      printf("Stringa: %s.\n", strndup(Stringa, (size_t)(Token-Stringa)));
      Stringa = Token;
    }
  fclose(File);
  return 0;
}
Non l'ho provato, ma dovrebbe andare (spero).
La getline è esclusivamente una estensione presente su sistemi GNU. Non è portabile quindi.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 15:11   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da dj_ste
Ho un problema.
Ho un file che è strutturato in questo modo:

ciao;casa
gaia;topino
pappa;ciccia
ecc;ecc

e ho anche 2 stringhe salvate in 2 variabili distinte.
quello che devo fare è ad esempio confrontare se la stringa 1 è uguale a ciao e la stringa 2 a casa. oppure la prima stringa a pappa e la seconda a ciccio.

praticamente è come se le due stringhe che ho già salvato siano username e password e se queste due parole sono presenti nel file separate da una virgola l'utente è autenticato a fare qualcosa.

come faccio?
Questo è un semplice esempio scritto in ANSI "C":
Codice:
#include <stdio.h>
#include <string.h>

int main (void)
{
    char  buffer[64];
    char *stringa1, *stringa2;
    FILE *f;

    if ((f = fopen ("file.txt", "r")) != NULL)
    {
        while (fgets (buffer, sizeof (buffer), f) != NULL)
        {
            if ((stringa1 = strtok (buffer, ";")) != NULL &&
                (stringa2 = strtok (NULL, ";\n")) != NULL)
            {
                printf ("stringa1=%s  stringa2=%s\n", stringa1, stringa2);

                /* Fai i test che vuoi con stringa1/stringa2 */
            }
        }

        fclose (f);
    }

    return 0;
}
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 16:50   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da andbin
La getline è esclusivamente una estensione presente su sistemi GNU. Non è portabile quindi.
Si, lo so, l'avevo buttato giù solo come esempio veloce, lui voleva vedere come usare strtok.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2006, 20:20   #11
dj_ste
Senior Member
 
L'Avatar di dj_ste
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1644
ok, grazie a tutti ho risolto!
dj_ste è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Phantom Blade Zero da record: nelle prim...
Il paradosso di Android 17: è l'u...
Linux cresce ancora tra gli utenti Steam...
Non solo iPhone e Mac: Apple dovrebbe la...
Milioni di box Android TV trasformate in...
La Germania pungola l'Europa e punta a q...
Recensione UGREEN HomeAgent: è ar...
Il meglio di Amazon oggi in 12 articoli ...
Synology, con DSM obsoleto il ransomware...
Windows 11, arriva Cloud Rebuild: si rei...
Trovati possibili globuli rossi fossili ...
Google Pixel 11, prezzi in picchiata su ...
Nove porte e ricarica MagSafe con un sol...
Datacenter AI, in Cina debutta l'aliment...
Full frame? Può aspettare: OM System seg...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v