
Lecture d'un fichier texte sur serveur (RESOLU)
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Lecture d'un fichier texte sur serveur
Longue comme le bras c'est vrai
. MetalOS est sous un environnement Mac OS et ne souhaite pas télécharger le fichier distant. Juste le lire en mémoire.

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Lecture d'un fichier texte sur serveur
ben la methode Get "telecharge" non ?
de plus il me semble que Get est limité en taille car ça passe par l'URL non ?
meme en mode Http , il me semble qu'il y a une limitation concernant la taille des données récupérés ....
certains parlent de 4 ko reel maximum ... d'autres parlent de 255 en passant par l'url ...
Microsoft eux parlent de
ça doit dépendre du navigateur .....
ceci explique ton
quoiqu'il en soit le telechargement a bien lieu , qu'il se fasse dans le Cache du Navigateur , ou en direct dans un dossier precis
perso , je prefere savoir ou ça va ....
rien n'empeche d'effacer le fichier avec "Resultat = DeleteFile(NomFichier$)" , juste apres usage ....
c'est transparent , et tres rapide .. non limité en taille
(plus court en code )
[reedit]
ps: si ça se trouve la fonction utilise la methode Get .. va savoir 
de plus il me semble que Get est limité en taille car ça passe par l'URL non ?
meme en mode Http , il me semble qu'il y a une limitation concernant la taille des données récupérés ....
certains parlent de 4 ko reel maximum ... d'autres parlent de 255 en passant par l'url ...
Microsoft eux parlent de
http://support.microsoft.com/kb/208427/frSi vous utilisez la méthode GET, vous êtes limité à 2 048 caractères moins le nombre de caractères figurant dans le chemin d'accès réel.
ça doit dépendre du navigateur .....
ceci explique ton
Parfois le résultat est nul. A mon avis tu dois prévoir dans ce cas à une nouvelle lecture.
quoiqu'il en soit le telechargement a bien lieu , qu'il se fasse dans le Cache du Navigateur , ou en direct dans un dossier precis
perso , je prefere savoir ou ça va ....
rien n'empeche d'effacer le fichier avec "Resultat = DeleteFile(NomFichier$)" , juste apres usage ....
c'est transparent , et tres rapide .. non limité en taille

[reedit]
ps: si ça se trouve la fonction
Code : Tout sélectionner
ReceiveHTTPFile()

Dernière modification par Backup le jeu. 22/août/2013 13:07, modifié 1 fois.
Re: Lecture d'un fichier texte sur serveur
Bonjour,
Je penses qu'il y a un truc que tu n'as pas compris Dobro
. En fait il ne veut pas être obliger de devoir copié physiquement les données sur le disque dur (Ce que je comprend car cela laisse une trace). Donc les données sont copiées en mémoire (et d'ailleurs pour un de mes programmes c'est aussi ce que je fait).
Après il ne faut pas confondre le Get (URL) et les datas de réception
.
Cordialement,
GallyHC
Je penses qu'il y a un truc que tu n'as pas compris Dobro

Après il ne faut pas confondre le Get (URL) et les datas de réception

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Lecture d'un fichier texte sur serveur
que dalle ! si tu erases le fichier juste après l'avoir lu , en même pas quelque millième de seconde , ton fichier téléchargé disparait !GallyHC a écrit :En fait il ne veut pas être obliger de devoir copié physiquement les données sur le disque dur (Ce que je comprend car cela laisse une trace).
si on ne le sait pas ... c'est transparent
si c'est un problème de sécurité , tu Cryptes ... (comme les contes )
oui , dans mon message , je parle des 2 modes ! (par url , et Http )Après il ne faut pas confondre le Get (URL) et les datas de réception.
Cordialement,
GallyHC

les 2 sont limités en taille !
Re: Lecture d'un fichier texte sur serveur
Ouep, mais le problème est que si pour x raison le programme plante ou j'en passe et que le fichier a bien été créer... Il restera et sera accessible donc le faire en mémoire est une bonne solution (avec cryptage en plus).
Ensuite Pour la sécurité, tu peux aussi te créer ton propre "UserAgent" et seul celui-là aura accès au Fichier (le fichier ne sera plus un txt mais un php). Tu ajoute ce script au départ de ton fichier (*.php).
Ce n'est pas une solution miracle, mais cela augmente un peu la protection 
Cordialement,
GallyHC
Ensuite Pour la sécurité, tu peux aussi te créer ton propre "UserAgent" et seul celui-là aura accès au Fichier (le fichier ne sera plus un txt mais un php). Tu ajoute ce script au départ de ton fichier (*.php).
Code : Tout sélectionner
<?php
if ($_SERVER['HTTP_USER_AGENT'] != 'TonUserAgent')
{
echo "forbidden";
exit();
}
?>

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Lecture d'un fichier texte sur serveur
C'est pas con et amusant comme méthode.GallyHC a écrit :Ouep, mais le problème est que si pour x raison le programme plante ou j'en passe et que le fichier a bien été créer... Il restera et sera accessible donc le faire en mémoire est une bonne solution (avec cryptage en plus).
Ensuite Pour la sécurité, tu peux aussi te créer ton propre "UserAgent" et seul celui-là aura accès au Fichier (le fichier ne sera plus un txt mais un php). Tu ajoute ce script au départ de ton fichier (*.php).
Ce n'est pas une solution miracle, mais cela augmente un peu la protectionCode : Tout sélectionner
<?php if ($_SERVER['HTTP_USER_AGENT'] != 'TonUserAgent') { echo "forbidden"; exit(); } ?>
Cordialement,
GallyHC
@Dobro
Tout dépend encore et toujours de l'usage qu'on peut avoir du programme. S'il est destiné à être fonctionnel sur des PC "clients" bridés en écriture, il y aura un hic... Dans tout autre cas, la méthode télécharger/"crypter"/effacer s'avère la plus simple.
J'avais eu ce soucis avec mon lecteur d'images d'archives généalogiques pour mairie ou toutes les images inscrites dans le dvd devaient être cryptées et à aucun moment le soft ne pouvait écrire sur la machine hôte. comme quoi ça arrive.
il me semblait avoir eu un code pour lire directement le contenu d'une adresse web mais je ne le trouve pas...

---EDIT---
Hélas le code contient des API donc... no MAC

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Lecture d'un fichier texte sur serveur
Désolé de la réponse tardive je travail beaucoup de nuit en ce moment. Je ne veut pas télécharger le fichier car ce sont des données qui ne peuvent pas être partagé en brut.
Voici les procédures que j'utilise pour une autre source de données ou je télécharge le fichier et je le traite en local.
Pour les données de mon premier post j'arrive à charger le fichier dans un WebGadget et ensuite l'envoyer dans un EditorGadget avec cet procédure
Et il possible ensuite de traiter ligne par ligne le contenue de l'EditorGadget ?
Voici les procédures que j'utilise pour une autre source de données ou je télécharge le fichier et je le traite en local.
Code : Tout sélectionner
;Procédure de hachage des données
Procedure.s SepareDonnees(phrase$ ,type)
Protected a$,b$
If type=1
a$=StringField(phrase$,6," ")
ProcedureReturn a$
EndIf
If type=2
a$=StringField(phrase$,10," ")
ProcedureReturn a$
EndIf
EndProcedure
;Chargement du fichier de données meteorologic.net
Procedure ChargementCoordonnees()
If ReceiveHTTPFile("http://www.meteorologic.net/data/radar/brute_donnee.txt", "brute_donnee.txt")
Else
MessageRequester("Information.", "Chargement des données météorologic.net impossible", #PB_MessageRequester_Ok )
EndIf
If ReadFile(1,"brute_donnee.txt")
Ligne1.s = ReadString(1)
While Not Eof(1)
Ligne.s = ReadString(1)
DonLat.s = SepareDonnees(Ligne.s,1)
DonLat1.d = ValD(DonLat.s)
DonLong.s = SepareDonnees(Ligne.s,2)
DonLong1.d = ValD(DonLong.s)
StartDrawing(CanvasOutput(#CanvasGadgetCarteCellules))
ProjectionCellules(DonLat1.d, DonLong1.d)
StopDrawing()
Wend
CloseFile(1)
EndIf
EndProcedure
Code : Tout sélectionner
Procedure Donnees()
Resultat$ = GetGadgetItemText(#WebGadgetCellules, #PB_Web_HtmlCode)
SetGadgetText(#EditorCellules, Resultat$)
EndProcedure
Re: Lecture d'un fichier texte sur serveur
Pourquoi ne pas utiliser un ListViewGadget() ?MetalOS a écrit :Et il possible ensuite de traiter ligne par ligne le contenue de l'EditorGadget ?Code : Tout sélectionner
Procedure Donnees() Resultat$ = GetGadgetItemText(#WebGadgetCellules, #PB_Web_HtmlCode) SetGadgetText(#EditorCellules, Resultat$) EndProcedure
Pour ta gestion des données, tu devrais utiliser un tableau à 2 dimensions (pour ranger tes longitudes / latitudes)
Le travail sur ces données en serait simplifiées
Dernière modification par Ar-S le jeu. 22/août/2013 18:14, modifié 1 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Lecture d'un fichier texte sur serveur
Tu aurai un exemple ? (Histoire de me faciliter la vie lol)
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Lecture d'un fichier texte sur serveur
Bonjour MetalOs. J'ai l'impression que tu as zappé ma proposition de lecture d'un fichier se trouvant sur un serveur distant sans le télécharger.
Toutefois je vais répondre à une de tes questions.
Toutefois je vais répondre à une de tes questions.
MetalOS a écrit :Et il possible ensuite de traiter ligne par ligne le contenue de l'EditorGadget ?
Code : Tout sélectionner
Enumeration
#Mainform
#Editor
EndEnumeration
Define.l Event, GEvent
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget
Procedure Open_MainForm()
Protected Result.s
OpenWindow(#Mainform, 0, 0, 500, 400, "New Form", WindowStyle)
EditorGadget(#Editor, 10, 10, 480, 370)
;On va un peu remplir l'editor
For i=0 To 20
AddGadgetItem(#Editor, -1, "Ligne "+Str(i))
Next
;Lecture de EditorGadget LIGNE PAR LIGNE
For i = 0 To CountGadgetItems(#Editor)
Debug GetGadgetItemText(#Editor, i)
Next
EndProcedure
Open_MainForm()
Repeat
Event = WaitWindowEvent(10)
GEvent = EventGadget()
Select Event
Case #PB_Event_Gadget
Select GEvent
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Lecture d'un fichier texte sur serveur
Je trouve tout de même qu'un listViewGadget() serait plus adaequat mais bon 
Pour l'extraction de tes données, j'ai opté pour une expression régulière.
Je trouve ça plus clean et plus sûr.

Pour l'extraction de tes données, j'ai opté pour une expression régulière.
Je trouve ça plus clean et plus sûr.
Code : Tout sélectionner
; Extraire Longitude et latitude via expression régulière by Ar-S
; Extraire Longitude et latitude via expression régulière by Ar-S
InitNetwork()
#LA = 0
#LO = 1
Global.s T
Procedure ExtractionCoord(Contenu.s)
Dim result$(0)
CreateRegularExpression(0,"[-]?+[0-9]{1,3}+[.]+[0-9]{1,10}")
NbFound = ExtractRegularExpression(0, T , result$())
Debug "Trouvé " + Str(NbFound)
ReDim result$(NbFound)
Mode = #LA
For k = 0 To NbFound-1
If Mode = #LO
TXT$ = "LONGITUDE : "
Mode - 1
ElseIf Mode = #LA
TXT$ = "LATITUDE : "
Mode + 1
EndIf
Debug TXT$ + result$(k) ; ICI au lieu du dbug tu n'as plus qu'à afficher TXT$ dans un listviewgadget()
Next
FreeRegularExpression(0)
EndProcedure
Procedure.s ChargementCoordonnees()
If ReceiveHTTPFile("http://www.meteorologic.net/data/radar/brute_donnee.txt", GetCurrentDirectory()+"brute_donnee.txt")
Else
MessageRequester("Information.", "Chargement des données météorologic.net impossible", #PB_MessageRequester_Ok )
EndIf
T.s = ""
If ReadFile(1, GetCurrentDirectory()+"brute_donnee.txt")
Ligne1.s = ReadString(1)
While Not Eof(1)
T.s + ReadString(1)
Wend
CloseFile(1)
ProcedureReturn T
EndIf
EndProcedure
ExtractionCoord(ChargementCoordonnees() )
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Lecture d'un fichier texte sur serveur
@falsam
Je devrais pouvoir faire ce que je veut avec ton exemple. Merci.
@Ar-S
Merci pour ton exemple mais comme je voudrais éviter de télécharger le fichier en local sa n'ira pas car j'utilise déjà une méthode similaire que je cherche justement à remplacer.
Merci à tous pour votre aide.
Je devrais pouvoir faire ce que je veut avec ton exemple. Merci.
@Ar-S
Merci pour ton exemple mais comme je voudrais éviter de télécharger le fichier en local sa n'ira pas car j'utilise déjà une méthode similaire que je cherche justement à remplacer.
Merci à tous pour votre aide.
Re: Lecture d'un fichier texte sur serveur
La méthode de récupération/lecture de Falsam est couplable avec mon extraction des données.MetalOS a écrit :@falsam
Je devrais pouvoir faire ce que je veut avec ton exemple. Merci.
@Ar-S
Merci pour ton exemple mais comme je voudrais éviter de télécharger le fichier en local sa n'ira pas car j'utilise déjà une méthode similaire que je cherche justement à remplacer.
Merci à tous pour votre aide.
Bonne continuation.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Lecture d'un fichier texte sur serveur
Il se peut que j'utilise quand même une partie de ton code pour autre chose. En tous cas merci pour votre aide 
