Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mse »

Nochmals, was steht in der Datei test_prozess.lpr Zeile 29, Spalte 46?

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

eine Klammer )
tmp := SplitRegExpr('\W',st[3],'=');

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mse »

mtbf40 hat geschrieben:eine Klammer )
Gut, die Fehlermeldung

Code: Alles auswählen

test_prozess.lpr(29,46) Error: Incompatible type for arg no. 3: Got "Char", expected "TStrings
bezieht sich also auf die Stelle

Code: Alles auswählen

tmp := SplitRegExpr('\W',st[3],'=');
                                 ^
Wie sieht der header von SplitRegExpr() aus?

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

Code: Alles auswählen

SplitRegExpr (const ARegExpr, AInputStr : string; APieces : TStrings);
ist in dieser Klasse ->TRegExpr
http://regexpstudio.com/TRegExpr/Help/T ... rface.html

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mse »

Deine Information ist unvollständig.

Code: Alles auswählen

SplitRegExpr (const ARegExpr, AInputStr : string; APieces : TStrings);
ist keine gültige Pascal Funktions- oder Procedur header Definition. Ist es so

Code: Alles auswählen

procedure SplitRegExpr (const ARegExpr, AInputStr : string; APieces : TStrings);
?
Wenn ja vergleiche mal was die Prozedur erwartet und was du übergeben hast.

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

ist mir schon klar das ich irgend einen Mist übergebe - wie bekomme ich aber ein '=' in eine TStrings ... und wie übergebe ich diese dann??? Genau an diese Stelle hänge rum und drehe mich im Kreis :?:
habe das ja versucht zu konstruieren, ABER immer die 3 :?:

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mse »

Bitte schau was die Prozedur erwartet und überlege, was der Zweck der Parameter ist.
Aus http://regexpstudio.com/TRegExpr/Help/T ... rface.html

Code: Alles auswählen

procedure SplitRegExpr (const ARegExpr, AInputStr : string; APieces : TStrings); 
 Split AInputStr into APieces by r.e. ARegExpr occurencies

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

Split AInputStr into APieces by r.e. ARegExpr occurencies

sagt mit: zerlege <LOT="ZA149062"> bei <=> mit <\W>

SplitRegExpr
ARegExpr -> \W'
AInputStr -> st[3] (LOT="ZA149062")
APieces -> '='

mtbf40

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mse »

Mir sagt das:
"Zerlege AInputStr in Stücke die auf den regulären Ausdruck ARegExpr zutreffen." Was nicht explizit steht aber naheliegend ist:
"Speichere die Stücke in die items von APieces."

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

so habe ich es jetzt verstanden - mir ist eine Erleuchtung gekommen :idea:

Code: Alles auswählen

tList : TStringList;
tList.Create;
SplitRegExpr('\W', 'LOT="ZA149062"' , tList);
... und schon funktioniert es - @mse Danke - man(n) muß nur lesen können

schönes WE - bis zur nächsten Herausforderung

mtbf40
Zuletzt geändert von Lori am Fr 18. Nov 2011, 15:27, insgesamt 1-mal geändert.
Grund: Highlighter

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mse »

;-)
Martin
Edit: Hmm, wenn ich lese was du geschrieben hast, funktioniert das wirklich?
Edit2: Weil es Wochenende ist:

Code: Alles auswählen

var
 tList: TStringList;
[...]
 tList:= TStringList.create;
 try
[...]
 finally
 tList.free;
 end;

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

so wieder hänge ich an einem Problem:

ich habe ein ComboBox die normal über den Programmcode gefüllt wird. Wenn aber keine Daten gefunden werden, soll der Nutzer die Möglichkeit haben einen Wert (String) einzutragen... und ich weiß nicht wie ich das hinbekommen soll. :?: :cry:

mtbf40

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

Frage: ist es überhaupt möglich in eine ComboBox zu schreiben und dies dann auszulesen??

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von MAC »

Antwort: Jap.

Grundsätzlich kannst du davon ausgehen das alle Basis-Komponennten irgendwie gleich arbeiten (was nicht zuletzt an der vererbung liegt)
Memo, Listbox, Combobox.
Alle besitzen eine Eigenschaft von Type TStrings(TStringList) in die dann werte eingetragen werden.
Daraus folgt das du bei einer Combobox , ähnlich wie bei einer Memo einträge zur Laufzeit einfügen kannst:

Code: Alles auswählen

// so fügt man in einer Memo etwas bei
Memo1.Lines.add('Eintrag1');
Memo1.Lines.Add('Eintrag2');
// So in der Combobox.
// der einzige unterschied ist das das eine "Lines" das andere "Items" heißt. Dahinter steckt exakt die selbe Klasse.
Combobox1.Items.add('Eintrag1');
Combobox1.Items.Add('Eintrag2');
// Den aktuell makierten eintrag rausfinden, beginnt bei 0. ist -1 wenn nichts makiert ist. So kann man auch den eintrag 7 makieren lassen...
Combobox1.ItemIndex;
// etwas scheiben
Combobox1.Text
// Die länge des Eintrags rausfinden. Das letzte ansprechbare Element ist Combobox1.Items.Count-1
Combobox1.Items.Count

Code: Alles auswählen

Signatur := nil;

mtbf40
Beiträge: 72
Registriert: Do 3. Nov 2011, 16:39

Re: Compiler Fehler"Wrong Numbers..." [(un)gelöst]

Beitrag von mtbf40 »

danke für Erklärung - es funktioniert...

habe auch gleich die nächste Frage:
ich möchte folgendes händeln:
1. ich habe 2 Prozeduren
2. in beiden Prozeduren werden externe Programme aufgerufen - C:\Prog\prog_1.exe C:\Prog\prog_2.exe
3. damit ich den Code für das Ausführen nicht doppelt schreiben will, möchte ich eine Funktion schreiben
4. mein Problem ist jetzt folgendes: ich übergebe dieser Funktion den aufrufenden String - z.B. C:\Prog\prog.exe - möchte aber 2 Werte zurück bekommen:
Process.Count und Process.Output

gibt es eine Möglichkeit auf die Variablen in der Funktion zurück zugreifen?

Antworten