Informatikgedönse

Du suchst ein Programm?
Treibt dich Hardware, PHP oder Windows zur Verzweifelung? Hier wird dir geholfen.

Moderator: ACZ-Mod-Team

Trillennium
Weltfußballer
Weltfußballer
Beiträge: 1221
Registriert: 02.09.2002, 07:56
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Trillennium »

Nee, das nicht, aber die entwickeln das Programm, was ich beruflich verwende.
Galileio ist tot
Einstein ist tot
und ich habe auch schon Husten
Trillennium
Weltfußballer
Weltfußballer
Beiträge: 1221
Registriert: 02.09.2002, 07:56
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Trillennium »

Code: Alles auswählen

// cppTest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>

struct Film
{
   char gerName[100];
   char orgName[100];
   int vjahr;
   char director[100];
};

Film* filmDB[100];

Film* erzeugeFilm()
{
	Film *f = new Film();
	std::cout << "Director: " << std::endl;
	std::cin >> f->director;
	std::cout << "Jahr: " << std::endl;
	std::cin >> f->vjahr;
	std::cout << "Originalname: " << std::endl;
	std::cin >> f->orgName;
	std::cout << "deutscher Name: " << std::endl;
	std::cin >> f->gerName;
	return f;
}

int main(int argc, char* argv[])
{
	char auswahl = 'a';

	while (auswahl != 'n')
	{
		std::cout << "Bitte geben Sie j ein, um einen weiteren Film einzutragen." << std::endl
			<< "Bitte geben Sie n ein, um das Programm zu beenden." << std::endl
			<< "Bitte geben Sie d ein, um einen Film zu löschen." << std::endl
			<< "Bitte geben Sie p ein, um die Daten aller gespeicherten Filme auszugeben." << std::endl;
		std::cin  >> auswahl;

		switch(auswahl)
		{
			case 'j': 
				{					
					for(int i = 0; i < 100; i++)
					{       
						if(filmDB[i] == NULL)
						{
							Film *f = erzeugeFilm();
							filmDB[i] = f;
							break;
						}
					}
					break;
				}
			case 'p': 
				{
					for(int i = 0; i < 100; i++)
					{       
						if(filmDB[i] != NULL)
						{
							std::cout << "Film #" << i << " in der Filmadatenbank:"<< std::endl;
							std::cout << "Deutscher Name des Films: " << filmDB[i]->gerName << std::endl;
							std::cout << "Originaltitel des Films: " << filmDB[i]->orgName << std::endl;
							std::cout << "Veröffentlichungsjahr des Films: " << filmDB[i]->vjahr << std::endl;
							std::cout << "Regie: " << filmDB[i]->director << std::endl;
						}
					}
					break;
				}
			case 'd':
				{
					std::cout << "Welcher Film (Index) soll gelöscht werden?" << std::endl;
					int index = -1;
					std::cin >> index;
					if (index >= 0 && index <= 99)
					{
						delete filmDB[index];
						filmDB[index] = NULL;
					}
					break;
				}
		}
	}

	delete [] *filmDB;
	std::cout << "Auf Wiedersehen!";
	std::cin >> auswahl;
	return 0;
}

Galileio ist tot
Einstein ist tot
und ich habe auch schon Husten
Trillennium
Weltfußballer
Weltfußballer
Beiträge: 1221
Registriert: 02.09.2002, 07:56
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Trillennium »

Kein Ding :)
Galileio ist tot
Einstein ist tot
und ich habe auch schon Husten
Trillennium
Weltfußballer
Weltfußballer
Beiträge: 1221
Registriert: 02.09.2002, 07:56
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Trillennium »

Lerne es lieber erstmal unter Windows ODER unter Linux. Reines C++ funktioniert meist auch unter beiden Betriebssystemen.
Galileio ist tot
Einstein ist tot
und ich habe auch schon Husten
Trillennium
Weltfußballer
Weltfußballer
Beiträge: 1221
Registriert: 02.09.2002, 07:56
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Trillennium »

Uff, schwer zu lesen dein Code.

Hier mal Pseudocode (Java-Style):

while(datei hat zeilen) do
string zeile = datei.lieszeile

String tagname = zeile.substring(0, zeile.indexof(' '))
zeile = zeile.substring(zeile.indexof(' ');

String paar1= zeile.substring(0, zeile.indexof(' '))
zeile = zeile.substring(zeile.indexof(' ');

String paar2= zeile.substring(0, zeile.indexof(' '))

String attr1 = paar1.substring(0, paar1.indexof('='))
String value1 = paar1.substring(paar1.indexof('='))

String attr2 = paar2.substring(0, paar2.indexof('='))
String value2 = paar2.substring(paar2.indexof('='))

end do

Falls du es konkret brauchst, meld dich nochmal, dann helf ich dir.


Andere Frage: Müsst ihr char* verwenden oder kennst du nur std::string nicht?
Galileio ist tot
Einstein ist tot
und ich habe auch schon Husten
Trillennium
Weltfußballer
Weltfußballer
Beiträge: 1221
Registriert: 02.09.2002, 07:56
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Trillennium »

Code: Alles auswählen

#include <stdafx.h>
#include <iostream>
#include<fstream>
#include <string>

class ClToken
{
public:
	std::string getTagName() { return tagName; }
	std::string getAttribut1Name() { return attribut1Name; }
	std::string getAttribut1Wert() { return attribut1Wert; }
	std::string getAttribut2Name() { return attribut2Name; }
	std::string getAttribut2Wert() { return attribut2Wert; }	

	void setAttribut1Name(std::string attribut1Name) {this->attribut1Name = attribut1Name;}
	void setAttribut1Wert(std::string attribut1Wert) {this->attribut1Wert = attribut1Wert;}
	void setAttribut2Name(std::string attribut2Name) {this->attribut2Name = attribut2Name;}
	void setAttribut2Wert(std::string attribut2Wert) {this->attribut2Wert = attribut2Wert;}
	void setTagName(std::string tagname) {this->tagName = tagname;}
private:
	std::string tagName;
	std::string attribut1Name;
	std::string attribut1Wert;
	std::string attribut2Name;
	std::string attribut2Wert;
};

int main()
{
	std::ifstream file("c:\\test.txt");
    std::string buffer;
	int count = 0;

	while(std::getline(file, buffer))
	{
		count++;
		ClToken *token = new ClToken();

		token->setTagName(buffer.substr(1, buffer.find_first_of(' ') - 1));
		buffer = buffer.substr(buffer.find_first_of(' ') + 1, buffer.length() - buffer.find_first_of(' '));

		std::string attr1 = buffer.substr(0, buffer.find_first_of(' '));
		token->setAttribut1Name(attr1.substr(0, attr1.find_first_of('=')));
		token->setAttribut1Wert(attr1.substr(attr1.find_first_of('=')+ 1, attr1.length() - attr1.find_first_of('=')));
		
		std::string attr2 = buffer.substr(buffer.find_first_of(' ') + 1, buffer.length() - buffer.find_first_of(' ') - 2);
		token->setAttribut2Name(attr2.substr(0, attr2.find_first_of('=')));
		token->setAttribut2Wert(attr2.substr(attr2.find_first_of('=')+ 1, attr2.length() - attr2.find_first_of('=')));
		
		std::cout << "Tag " << count << std::endl;
		std::cout << "Tagname: " << token->getTagName() << std::endl;
		std::cout << "Attr1: " << token->getAttribut1Name() << " : " << token->getAttribut1Wert() << std::endl;
		std::cout << "Attr2: " << token->getAttribut2Name() << " : " << token->getAttribut2Wert() << std::endl;		
		
		std::cout << std::endl;
		 
	}
	return 0;
}
Galileio ist tot
Einstein ist tot
und ich habe auch schon Husten
Benutzeravatar
Lunkens
Chefbiertrinker
Chefbiertrinker
Beiträge: 15380
Registriert: 13.07.2001, 02:00
Wohnort: Bierkasten
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Lunkens »

Mal was zu Windows Skripten

Wenn ich mit %1 den Filename bekomme, also quasi für das Kontext Menü in windows

"Editiere mit Notepad" und dann
notepad.exe %1 funzt ja wunderbar, er liefert den kompletten Filenamen an Notepad.

Gibts da ne Möglichkeit nur die Dateiendung oder ur den Dateinamen zu bekommen?

Also %1 liefert "C:\MeiMuddaIhrKudder\hallo.txt"

ich brauche aber "hallo" oder "txt"

geht dat?
Rangoo sprich :D
BildBild

Anstoss Coaching Zone - Discord Server

https://discord.com/invite/GGAgTBm
Benutzeravatar
Lunkens
Chefbiertrinker
Chefbiertrinker
Beiträge: 15380
Registriert: 13.07.2001, 02:00
Wohnort: Bierkasten
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Lunkens »

Rangoo hat geschrieben:Ja, geht.

Google!

%~x1

Ernsthaft, schon mal gegoogelt? :D
........................ liebe menschen, die immer davon ausgehen dat der andere nen vollspasti ist :D
nachem echt allem möglichen
wonach hast du? hab command line arguments, windows context menu und blubb
liefert leider exakt nichts, erscheint statt filenamen halt nur %~x1.
alternativ zu %1 noch %~n1 oder %l gefunden, was auch nicht geht, liefert immer absoluten path
weil windows wohl nur die argumente übergibt und nicht das ding als datei behandelt, quasi nur strings, die nach anzahl der ausgewählten files im explorer übergeben werden

andere menschen haben sich dann programm geschrieben, dat den filenamen dann verarbeitet, aber will ja direkt von windows nur den dateinamen ohne endung überliefert bekommen, wenn ich vom kontextmenu ne .exe oder ähnliches aufrufe
BildBild

Anstoss Coaching Zone - Discord Server

https://discord.com/invite/GGAgTBm
Benutzeravatar
Lunkens
Chefbiertrinker
Chefbiertrinker
Beiträge: 15380
Registriert: 13.07.2001, 02:00
Wohnort: Bierkasten
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Lunkens »

jo, die dinger hat ich probiert
die funzen wohl in .bat files, aber nicht vom explorer aus
da haste wohl nur %1 - %x was dir den filenamen übergibt
die dort angebenen argumente werden gar nicht aufgelöst

geht halt um erweiterung des kontextmenus (wie zb open with notepad) im zusammenspiel mit der regedit, DA soll an die .exe halt "c:\abc.txt" nicht übergeben werden sondern zb nur "abc"
funzt mit den obrigen dingern leider allet nich
BildBild

Anstoss Coaching Zone - Discord Server

https://discord.com/invite/GGAgTBm
Benutzeravatar
Lunkens
Chefbiertrinker
Chefbiertrinker
Beiträge: 15380
Registriert: 13.07.2001, 02:00
Wohnort: Bierkasten
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Lunkens »

naja, mach ich es halt von hinten durch die brust ins auge und lege ne .bat datei an, die %1 verarbeitet
BildBild

Anstoss Coaching Zone - Discord Server

https://discord.com/invite/GGAgTBm
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

Einfaches Kontaktformular. Username, Wunschspieler 1 und 2 und Captcha passt, aber wenn ich dann auf senden klicke kommt "
Du musst deine E-Mail Adresse angeben
Du musst eine Nachricht angeben". Ich will aber einfach

Username:
Wunschspieler 1:
Wunschspieler 2:

Dann senden und ich krieg ne EMail. Habe halt einfach die contact.php (die funzt) angepasst mit den Begriffen und Nachricht rausgenommen.

Was muss also noch raus oder geändert werden?

Code: Alles auswählen

<?php

require_once "maincore.php";
require_once THEMES."templates/header.php";
include LOCALE.LOCALESET."contact.php";

add_to_title($locale['global_200'].$locale['000004']);

if (isset($_POST['sendmessage'])) {
	$error = "";
	$mailname = substr(stripinput(trim($_POST['mailname'])), 0, 50);
	$email = substr(stripinput(trim($_POST['email'])), 0, 100);
	$subject = substr(str_replace(array("\r","\n","@"), "", descript(stripslash(trim($_POST['subject'])))), 0, 50);
	$message = descript(stripslash(trim($_POST['message'])));
	if ($mailname == "") {
		$error .= " <span class='alt'>".$locale['420']."</span><br />\n";
	}
	if ($email == "" || !preg_match("/^[-0-9A-Z_\.]{1,50}@([-0-9A-Z_\.]+\.){1,50}([0-9A-Z]){2,4}$/i", $email)) {
		$error .= " <span class='alt'>".$locale['421']."</span><br />\n";
	}
	if ($subject == "") {
		$error .= " <span class='alt'>".$locale['422']."</span><br />\n";
	}
	if ($message == "") {
		$error .= " <span class='alt'>".$locale['423']."</span><br />\n";
	}
	$_CAPTCHA_IS_VALID = false;
	include INCLUDES."captchas/".$settings['captcha']."/captcha_check.php";
	if ($_CAPTCHA_IS_VALID == false) {
		$error .= " <span class='alt'>".$locale['424']."</span><br />\n";
	}
	if (!$error) {
		require_once INCLUDES."sendmail_include.php";
		if (!sendemail($settings['siteusername'],$settings['siteemail'],$mailname,$email,$subject,$message)) {
			$error .= " <span class='alt'>".$locale['425']."</span><br />\n";
		}
	}
	if ($error) {
		opentable($locale['000004']);
		echo "<div style='text-align:center'><br />\n".$locale['442']."<br /><br />\n".$error."<br />\n".$locale['443']."</div><br />\n";
		closetable();
	} else {
		opentable($locale['000004']);
		echo "<div style='text-align:center'><br />\n".$locale['440']."<br /><br />\n".$locale['441']."</div><br />\n";
		closetable();
	}
} else {
	opentable($locale['000004']);
	echo $locale['000005']."<br /><br />\n";
	echo "<form name='userform' method='post' action='".FUSION_SELF."'>\n";
	echo "<table cellpadding='0' cellspacing='0' class='center'>\n<tr>\n";
	echo "<td width='100' class='tbl'>".$locale['000001']."</td>\n";
	echo "<td class='tbl'><input type='text' name='mailname' maxlength='100' class='textbox' style='width: 200px;' /></td>\n";
	echo "</tr>\n<tr>\n";
	echo "<td width='100' class='tbl'>".$locale['000002']."</td>\n";
	echo "<td class='tbl'><input type='text' name='email' maxlength='100' class='textbox' style='width: 200px;' /></td>\n";
	echo "</tr>\n<tr>\n";
	echo "<td width='100' class='tbl'>".$locale['000003']."</td>\n";
	echo "<td class='tbl'><input type='text' name='subject' maxlength='100' class='textbox' style='width: 200px;' /></td>\n";
	echo "</tr>\n<tr>\n";
		echo "<td width='100' class='tbl'>".$locale['407']."</td>\n";
	echo "<td class='tbl'>";
	include INCLUDES."captchas/".$settings['captcha']."/captcha_display.php";
	if (!isset($_CAPTCHA_HIDE_INPUT) || (isset($_CAPTCHA_HIDE_INPUT) && !$_CAPTCHA_HIDE_INPUT)) {
		echo "</td>\n</tr>\n<tr>";
		echo "<td class='tbl'><label for='captcha_code'>".$locale['408']."</label></td>\n";
		echo "<td class='tbl'>";
		echo "<input type='text' id='captcha_code' name='captcha_code' class='textbox' autocomplete='off' style='width:100px' />";
	}
	echo "</td>\n</tr>\n<tr>\n";
	echo "<td align='center' colspan='2' class='tbl'>\n";
	echo "<input type='submit' name='sendmessage' value='".$locale['406']."' class='button' /></td>\n";
	echo "</tr>\n</table>\n</form>\n";
	closetable();
}

require_once THEMES."templates/footer.php";
?>
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

Lunkens hilft mir ja nicht :effe:

Ich habe ein Formular mit welchem man mir eine Aufstellung schicken kann.
Man trägt per Dropdown die Position ein und daneben den Namen.
Dann klickt man auf senden und ich kriege eine Mail.

Allerdings sieht die Mail dann so aus:
position: TW
position: TW
position: TW
position: TW
position: TW
position: TW
position: TW
position: TW
position: TW
position: TW
position: TW
Spielername_1: test
Spielername_2: test
Spielername_3: test
Spielername_4: test
Spielername_5: test
Spielername_6: test
Spielername_7: test
Spielername_8: test
Spielername_9: test
Spielername_10: test
Spielername_11:test


Ich will aber das es so aussieht (grob):
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
position: TW test
Sprich es soll direkt der Name hinter der Position stehen.

Hier der Codeschnippsel der dafür zuständig ist.

Code: Alles auswählen

foreach ($_POST as $name => $wert) {
        if (is_array($wert)) {
		    foreach ($wert as $einzelwert) {
			    $mailtext .= $name.$trenner.$einzelwert."\n"; 
            }
        } else {
            $mailtext .= $name.$trenner.$wert."\n";
        }
    }
Hier wie ich das Formular erstellt habe.

Code: Alles auswählen

<select size=1 name="position[]">
        <option value="TW">TW</option>
        <option value="LV">LV</option>
        <option value="IV">IV</option>
		<option value="RV">RV</option>
		<option value="ZM">ZM</option>
		<option value="ZDM">ZDM</option>
		<option value="LM">LM</option>
		<option value="RM">RM</option>
		<option value="LOM">LOM</option>
		<option value="ZOM">ZOM</option>
		<option value="ROM">ROM</option>
		<option value="LF">LF</option>
		<option value="RF">RF</option>
		<option value="MS">MS</option>
		<option value="ST">ST</option>		
		<input type="text" name="Spielername 1" />
		<br />
Wie kriege ich es also hin?!
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

MACHT!
Kann doch nich so schwer sein!
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

alta, dafür muss man doch nix chef sein oder :D
wette is mega simpel, lunkens hat aber einfach hirnfrass und vegetiert auf arbeit vor sich hin :D
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

Jemand grundsätzlich eine Idee wie ich sowas am besten löse?

Bei PES sind die Gesamtstärken ja ziemlich schlecht, Gomez 77 und sowas.

Ich will nun den ganzen verschiedenen Attributen eine Gewichtung geben je nach Position und dann eine Positionsgebundene Stärke haben.

Jemand eine Idee wie? Eine Formel?

Normal reicht ja:

Attribut*Gewichtung+Attribut2*Gewichtung/AnzahlAttribute

Aber dann kommen da riesige Zahlen bei raus.

Jemand einen besseren Ansatz?
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

Macht Sinn, danke :D probiere ich nachher mal aus
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

So wirklich brauchbare Werte kommen nicht dabei herum bei Gewichtung 1-5. Aber der Ansatz müsste ja hinhauen
PRO Outing von Schwulen!!! :effe:
Benutzeravatar
Holsten
Saftschubse
Beiträge: 4515
Registriert: 18.09.2001, 02:00
Wohnort: Hamburg Süd
Kontaktdaten:

Re: Informatikgedönse

Beitrag von Holsten »

Ich hab sone Kaderliste. Da wird aber nicht naach der Stäörke/Posiutionm sortiert, sondern nach der Playerid.
wie gehtn das mit php nun nach der position zu sortieren?
PRO Outing von Schwulen!!! :effe:
Antworten