begin process at 2012 02 11 12:34:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > STRUCTURE & CHAINE DE CARACTERE....

STRUCTURE & CHAINE DE CARACTERE....


 Information sur la source

Note :
Aucune note
Catégorie :Divers Niveau :Débutant Date de création :20/05/2003 Date de mise à jour :20/05/2003 09:26:08 Vu :4 667

Auteur : BarthOlivier

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Je ne sais pas pour vous, mais moi je transfert souvent des informaations par la voie serie ou USB. Le probleme c'est le temps de transmission et la longueur du code lorsque l'on désire transferer une structure complexe. J'ai essayer avec RltMoveMemory mais impossible d'obtenir ce que je veux.

Comme, en géneral, la transmission de donnée se resume a une chaine de caractere, j'utilise les des fichiers d'entrée/sortie pour recuperer mes données. Acces disque dur -> très lent .. c'est vrai mais ca reste très pratique....

Remarque : si vous avez une facon plus commode et moin barbare, je suis preneur et pret a prendre des lecon de tous le monde.. tant que ca fait avancer le schmimilli biibblliil blick.....

Source

  • type ESSAI
  • a as byte
  • b as byte
  • c as byte
  • end type
  • sub main()
  • dim strMessage as string
  • dim stStruct as ESSAI
  • dim bValue as byte
  • strMessage = "012"
  • open "c:\tempo.str" for output as #1
  • print #1,strMessage
  • close #1
  • open "c:\tempo.str" for binary as #1
  • get #1,,stStruct
  • close #1
  • bValue = stStruct.a ' bValue = 48
  • bValue = stStruct.b ' bValue = 49
  • bValue = stStruct.c ' bValue = 50
  • end sub
type ESSAI
	a as byte
	b as byte
	c as byte
end type

sub main()
dim strMessage as string
dim stStruct as ESSAI
dim bValue as byte

	strMessage = "012"

	open "c:\tempo.str" for output as #1
		print #1,strMessage
	close #1

	open "c:\tempo.str" for binary as #1
		get #1,,stStruct
	close #1

	bValue = stStruct.a	' bValue = 48
	bValue = stStruct.b	' bValue = 49
	bValue = stStruct.c	' bValue = 50
end sub


 Conclusion

Exemple simple mais trés pratique losque l'on a des trucs du genre :

Public Type ProgInfo
  TERMINAL As Byte      '
  Portcom As Byte       '
  Vitesse As Long       '
  VitesseRapide As Long '
  RAM As Byte           '
  HYPER As Byte         '
  TEMPS As Byte         '
  PROGRAPIDE As Byte    '

  TOP_FORM As Long        '
  LEFT_FORM As Long       '
  
  LastPrj1(15) as byte
  LastPrj2(15) as byte
  LastPrj3(15) as byte
  LastPrj4(15) as byte
  LastPrj5(15) as byte
  
  Bouton1(40) as byte
  Bouton2(40) as byte
  Bouton3(40) as byte
  
  PathBOOT(20) as byte
  PathSOURCE(20) as byte
  PathROM(20) as byte
  PathPrj(20) as byte
  Commentaire(50) As byte
  
  Extended As Byte
  
  Bouton1 As String
  Bouton2 As String
  
  Vitesse As Long       '
  VitesseRapide As Long '
  RAM As Byte           '
  HYPER As Byte         '
  TEMPS As Byte         '
  PROGRAPIDE As Byte    '
  
End Type




 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty

Commentaires et avis

Commentaire de Proger le 20/05/2003 11:54:57

faire un rtlmovememory sur une string ? normal que tu ai des problèmes : la string est au format unicode, càd 2 octets par caractères : tu obtiens, pour "012" , 30h 00h 31h 00h 32h 00h, donc si tu le copie dans ta structure ESSAI, cela fait .a = 48, .b = 0, .c = 49

Je ne connais pas de méthode miracle autre que un "for next" pour convertir une string dans un tabeau de byte. Mais une fois que tu as obtenu le tableau de byte, rtlmovememory fonctionnera a merveille.
dim mybyte(15) as byte
mystring$ = "012"
for i = 1 to len(mystring$)
   mybyte(i)=asc$(mid$(mystring$,i,1))
next i

note que convertir un tableau de byte en string se fait facilement grâçe à strconv()

Commentaire de tiben6285 le 28/11/2003 11:35:54

salut, je suis debutant et je voudrais savoir si kelkun aurait une source pour utiliser le port usb en enté ou sortie, ca serait pour piloter une carte de commande de moteur pas a pas et autre merci

Commentaire de BarthOlivier le 28/11/2003 15:10:59

Microchip à crée un ActiveX qui permet de piloter des MicroControleurs en classe Souris (Un Canal d'emission, un de reception). En LowSpeed
Va voir sur leur site tu devrais trouver ton Bonheur...

Si tu es plutot du genre "outils faits maison", cherche sur internet USBIO. Tu trouveras un ou deux exemples d'application utilisant les dll HID de microsoft...

Bonne prog

Commentaire de tmcuh le 12/08/2004 09:26:09

salut bartholivier... tu serais donner le lien de chez microship, car cà fait 20 minutes que je cherche , pas moyen de trouver. merci

sinon pour le code, comme tu dis c'est bourrin. Maintenant je vois pas l'utilité d'écrire et de relire sur le disque mais bon. Proger en a fait une belle démonstration, car perso j'utilise tjrs le mid pour décomposer les chaines.

Commentaire de BarthOlivier le 12/08/2004 21:35:24

pour microchip :

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010168

sinon :

http://www.thesycon.de/usbio/eng/usbio.htm

apparament il n'est plus gratuit....

Demain sur mon poste,si j'y pense, je le recupererai et le mettrai en ligne.....


Pour le code... Merci Proger, ca fonctionne très bien et c'est bien plus rapide.... Quand on connait, ca vas tout de suite mieux....

Commentaire de BarthOlivier le 12/08/2004 21:44:36

j'ai trouvé un site où tu peux le trouver....

http://www.alecmcnamara.freeserve.co.uk/picnetusb/

Voila bonne prog... L'USB c'est passionnant, mais assez rigoureux et parfois tordu (souvent meme!!! Merci billou )

Commentaire de trexor le 12/03/2005 23:27:39

bonjour,
J'ai un petit souci car j'ai un pc portable sans port com, et je dois faire communiquer deux pc (j'envois une string d'un pc a un autre) ...peux t'on le faire via le port usb? (j'ai emprunter un cable usb avec adaptateur mais apparement le Cd d'install du cable/adaptateur ne possède pas de drivers pour simuler un port serie et ainsi communiquer via Mscomm)...existe til une solution de communication par l'usb m'evitant de faire un achat couteux de deux ports serie?

Commentaire de BarthOlivier le 14/03/2005 17:26:31

Salut.

Si c'est un simple cable A/A (c'est a dire prise PC - PC) tu ne pourras jamais communiquer...

Sans rentrer dans les details de l'USB, le seul moyen est soit de prendre 2 adaptateurs serie et un cable croisé serie (très onereux comme tu l'as dit), soit d'acheter un cable spécifique (j'ai vu que ca existait) soit de le faire :
soit tu mets 2 µC USB que tu lies avec une liaison serie rapide (synchrone ou asynchrone)
soit tu prends un µC avec 2 voies serie et 2 adaptateurs USB/Serie. Dans nos produits, on utilise FTDI (USB232).

pour FTDI : les drivers emulent un port serie. donc limités aux vitesses standart mais au moins les drivcers sont fait...
Pour l'USB : des drivers existent. tu peux dialoguer bien plus vite mais c'est plus contraignant....

si c'est un cable déjà tout fait ( spécialement etudié pour faire du transfert) il faut que tu puisses acceder aux routines internes (DLL + Drivers) et là bon courage....

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,402 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales