PDA

Visualizza la versione completa : class e metodi


postgresql
22-04-2004, 00:02
Date un pò un occhiata . Il mio scopo è quello di creare un metodo che inserisca una stringa in MSH tra due || individuati dall 'indice.
Questo viene fatto con un metodo che ho chiamato Add. Le mie perplessità sono due :

1) Quando inizializzo la Stringa MSH in Add mi si presenta con null perchè?

2) Se dovessi riuscire ad iserire la stringa un ulteriore operazione
di Add mi farebbe perdere quella precedente?


// Package HL7

package hl7.pkg;
import java.net.*;
import java.io.*;
import java.lang.*;


public class MessageHL7 {
boolean flag= true;
private static String QRD = "QRD|||||||||||||/n";
private String QRF = "QRF|||||||||||/n";
public String fields = "" ;
private char delim = '|' ;
private char run = ' ';
private char run_succ=' ';
public static String MSH;

//inizializza i campi
public void MessageHL7()
{
String MSH = "MSH|^~\\&||||||||||||||||||||/n";
}


// Metodo

public String Add(String message , String field , int pos ) {
int num_sep=0;
// inserire swicht
System.out.println(message+field+pos);
if( message.equals("MSH"))
message=MSH;
int posizione = 0;

while (flag==true)
{
run = message.charAt(posizione);
System.out.println("il carattere prelevato è " +run);
if ( run==delim)
{
num_sep++;
run_succ=message.charAt(posizione+1);
if (run_succ==delim && num_sep==pos )
{
String destra = message.substring(posizione+1);
String sinistra = message.substring(0,posizione);
message = sinistra+field+destra;
MSH=message;
flag=false;
}
else if (run_succ==delim && num_sep==pos ) flag=false;
System.out.println("Campo già esistente o non desiderato");


}
posizione++;
}

return message;
}
}
/* @(#)Clientadt.java 1.0 04/04/12 */

import hl7.pkg.*;
import java.net.*;
import java.io.*;
public class Clientadt {

public static void main(String argv[]) {
try
{
String segmento = new String ();
MessageHL7 hl7 = new MessageHL7 ();
segmento = hl7.Add("MSH","CUP",2);
segmento = hl7.Add("MSH","Ciccione",4);
System.out.println (" Il segmento è " + segmento);
}
....

bstefano79
22-04-2004, 01:07
Prima di tutto manca il linguaggio di programmazione nel titotlo del Post :mad: :mad:

Prova questo


.....
public static String MSH;
static
{
MSH = "MSH|^~\\&||||||||||||||||||||/n";
}

//inizializza i campi
public void MessageHL7()
{
}

...........

postgresql
22-04-2004, 09:43
NIENTE NON FUNZIA

Anche un semplice metodo del tipo:

public Class MessageHL7
{
private String MSH;

public void MessageHL7 ()
{
String MSH = "MSH|||||||||||||||||||||/n";
}

public String prova ()
{
return MSH;
}
}

MI RITORNA null!!!!!!!!!

caimano73
22-04-2004, 10:03
Originariamente inviato da postgresql
NIENTE NON FUNZIA

Anche un semplice metodo del tipo:

public Class MessageHL7
{
private String MSH;

public void MessageHL7 ()
{
String MSH = "MSH|||||||||||||||||||||/n";
}

public String prova ()
{
return MSH;
}
}

MI RITORNA null!!!!!!!!!

nel costruttore della classe ridefinisci una variabile MSH, che quindi ricopre (come visibilità) il mebro della classe.
Cioè quando nel costruttore fai
String MSH = "MSH|||||||||||||||||||||/n";
non stai assegnando il valore al membro privato e statico della classe, ma ad una variabile con lo stesso nome che hai definito lì dentro (e che quindi muore lì).
Dovresti fare semplicemente
MSH = "MSH|||||||||||||||||||||/n";


ciao

:ciauz:

postgresql
22-04-2004, 10:13
provo ti faccio sapere

postgresql
22-04-2004, 10:27
nulla non funzia

postgresql
22-04-2004, 10:28
ci sono 30000000000000000 esempi da internet fatti cosi' e a me non va .Uso JDK 1.4 della SUN .

postgresql
22-04-2004, 23:36
risolto

Loading