Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: mercury, Schalentier


 Thema: 100 gute Gründe für Linux ( v0.21 - sudo make me a sandwich! )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [80] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 nächste »
erste ungelesene Seite | letzter Beitrag 
./hoschi

hoschi
Hmmm. Ich war wohl gerade mit vorauseilendem Gehorsam zu schnell, was Templates in C++ angeht.


Ich bastel gerade an einem FIFO-Buffer mit Templateklassen, ich frage mich nur warum ich den Zeiger "WTF" nicht ohne Templateangabe erstellen darf.

 
Code:
// template fifo
#include <iostream>
using namespace std;

template<class T> class Node {
public:
	Node();
	~Node();
	bool push(int data);
	int pop();
//private:
	T Number;
	Node *Head;
	Node *Tail;
	Node *Next;
};

template<class T> Node<T>::Node()
{
	Number = 0;
	Head = 0;
	Tail = 0;
	Next = 0;
	cout << "Running.\n";
}

template<class T> Node<T>::~Node()
{
	cout << "Cleaning up.\n";
}

template<class T> bool Node<T>::push(int data)
{
	Node<T> *New = new Node<T>; // extrem kleinliche Angabe, ich dachte das muss sogar innerhalb einer Elementfunktion in einer Templateklasse sein
	New->Number = data;
	if (Head==0) {
		Head = New;
	}
	if (Tail==0) {
		Tail = New;
	} else {
		Tail->Next = New;
	}
}

template<class T> int Node<T>::pop()
{
	int Printout = 0;	
	Node/*<T>*/ *Old = 0; // Muss aber gar nicht so kleinlich sein!
	Old = Head;
	Head = Head->Next;
	Printout = Old->Number;
	delete Old;
	return Printout;
}

int main()
{
	Node<int> Test;
//	Node *WTF = 0; // Warum darf ich das nicht ohne Templateangabe, ich fordere doch keinen Speicher auf dem Heap an?
	Test.push(20);
	cout << Test.pop() << '\n';
	cout << Test.Next << '\n';
	return 0;
}



$ ./templatefifo
Running.
Running.
Cleaning up.
20
0
Cleaning up.
$ echo $?
0


Was mich so beschaeftigt ist mein Zeiger "WTF", wieso darf ich das nicht. Ich will ja noch gar keinen Speicher, also ist es doch egal ob ich jetzt was weiter angebe?
C++ ist doch, meinem Gefuehl nach, sehr Grosszuegig damit was man mit Zeigern anstellt. So lange man damit noch nicht aktiv auf dem Heap arbeitet.

 
Code:
	Node<int> *WTF;

Geht ja. Aber ich moechte ja sowas.

 
Code:
	template<class T> Node<T> *WTF;

oder vielleicht so
 
Code:
	Node<T> *WTF;


Mag der GCC aber nicht.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von ./hoschi am 08.08.2010 20:32]
08.08.2010 20:18:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
 
Zitat von ShinyDoofy

An Ihrer Stelle würd ich den Kaffee nehmen. Das ist nämlich das einzige, was die Capitol für Sie flüssig macht mit den Augen rollend



08.08.2010 20:18:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
YT

Arctic
fröhlich wenn du mal was "praktisches" programmieren möchtest: http://projecteuler.net
08.08.2010 20:32:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
Project Euler* klingt spassig und herausfordernd!
Ich muss doch erst die acht Damen erledigen peinlich/erstaunt
Oder?

Mein Plan ist derzeit das Buch vor mir "Einstieg in C++" durchzuarbeiten. Wenn ich das geschafft habe will ich die Erstellung von Dateien mit Inhalt (vielleicht ein kleines Telefonbuch) probieren.
Wenn ich das geschafft habe will ich "C++ von A bis Z" als Fachbuch und Nachschlagwerk verwenden und dann - die acht Damen.




*toller Vergleichstest fuer die Laenge eines Koerperorgans
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von ./hoschi am 08.08.2010 20:42]
08.08.2010 20:35:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
 
Zitat von ./hoschi

Ich bastel gerade an einem FIFO-Buffer mit Templateklassen, ich frage mich nur warum ich den Zeiger "WTF" nicht ohne Templateangabe erstellen darf.


weils halt nicht erlaubt ist.
nen template muss sich immer auf etwas beziehen (datentyp), ansonsten kann der compiler das nicht instanzieren. das muss er auch machen, wenn du da "nur" nen pointer haben willst, weil du ja theoretisch auf die methoden der klasse zugreifen kannst, auf die sich der speicher, auf den der pointer zeigt, bezieht.

bei templates gilt halt, der compiler baut dir da halt code mit der vorgabe, die halt in dem template steht. folglich muss das genau so verwendet werden, als wenn du den code direkt für den anwendungsfall geschrieben hättest.


btw. es ist nicht gerade toll, "0" anstelle von "NULL" bei pointern zu verwenden, da das unleserlich ist. wenn du da "NULL" schreibst, weiss man automatisch, dass es sich um nen pointer handelt und nicht um irgendwas anderes. Augenzwinkern
08.08.2010 21:58:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
Fuer Pointerschweinereien nimmt man halt dann direkt C
08.08.2010 22:08:58  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
da kannst du viel lustigere sachen in c++ mit machen.
08.08.2010 22:10:21  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
Stockwerkstrategie: http://www.matheboard.de/archive/64288/thread.html

Ich denke/lese das jetzt nicht durch; ich wart, bis ich ein huebsches Bild von der Bottel nebenmir zustande krieg. :>
09.08.2010 19:25:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
 
Zitat von Traxer

nen template muss sich immer auf etwas beziehen (datentyp), ansonsten kann der compiler das nicht instanzieren. das muss er auch machen, wenn du da "nur" nen pointer haben willst, weil du ja theoretisch auf die methoden der klasse zugreifen kannst, auf die sich der speicher, auf den der pointer zeigt, bezieht.



Leuchtet mir ein, danke.

 

btw. es ist nicht gerade toll, "0" anstelle von "NULL" bei pointern zu verwenden, da das unleserlich ist. wenn du da "NULL" schreibst, weiss man automatisch, dass es sich um nen pointer handelt und nicht um irgendwas anderes. Augenzwinkern



Hmm. Okay!
Ich wusste zwar das NULL auch erlaubt ist, aber da mein Buch immer 0 bei Pointern verwendet, habe ich die 0 in meinen Stil uebernommen.

Man erkennt Pointer mit NULL besser.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von ./hoschi am 09.08.2010 19:50]
09.08.2010 19:49:34  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
 
Zitat von teK

Stockwerkstrategie: http://www.matheboard.de/archive/64288/thread.html

Ich denke/lese das jetzt nicht durch; ich wart, bis ich ein huebsches Bild von der Bottel nebenmir zustande krieg. :>



Wir lief die Klausur?
Und weisst du die Strategie fuer die Fehlersuche Augenzwinkern

<edit> Haette ich mal den Link vorher angeklickt. Wobei wir natuerlich beliebig viele Versuche haben und moeglichst schnell ans Ziel wollen.
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von ./hoschi am 09.08.2010 20:01]
09.08.2010 19:50:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
Klausur lief eher so lala. 1er wirds schonmal nicht.
09.08.2010 20:05:53  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
 
Zitat von ./hoschi

Ich wusste zwar das NULL auch erlaubt ist, aber da mein Buch immer 0 bei Pointern verwendet, habe ich die 0 in meinen Stil uebernommen.


das ist ja auch nicht falsch. NULL ist ja nix weiter als nen macro was 0 zu nem void pointer castet.

 
Code:
#define NULL ((void*)0)
09.08.2010 21:55:38  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
http://support.mozilla.com/en-US/questions/716306 nervt mich. Wen noch.
09.08.2010 22:39:39  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Teh Ortus

UT Malcom
 
Zitat von teK

http://support.mozilla.com/en-US/questions/716306 nervt mich. Wen noch.


Jap, mich auch ab und an. Aber betrifft mich lustigerweise sogar im Chrome
09.08.2010 23:07:35  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
krautjork

AUP krautjork 30.12.2012
Beherrscht hier jemand C++ und bekommt dieses nützliche Programm so umgeschrieben, dass ich das Ding unter Linux mit dem g++ kompiliert kriege?

 
Code:
/*
 * REVORB - Recomputes page granule positions in Ogg Vorbis files.
 *   version 0.2 (2008/06/29)
 *
 * Copyright (c) 2008, Jiri Hruska <jiri.hruska@fud.cz>
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/*# INCLUDE=.\include #*/
/*# LIB=.\lib         #*/
/*# CFLAGS=/D_UNICODE #*/
/*# LFLAGS=/NODEFAULTLIB:MSVCRT /LTCG /OPT:REF /MANIFEST:NO #*/

#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <string.h>
#include <ogg/ogg.h>
#pragma comment(lib, "libogg-rsd.lib")
#include <vorbis/codec.h>
#pragma comment(lib, "libvorbis-rsd.lib")
#pragma comment(lib, "msvcrt-ddk.lib")
#pragma comment(lib, "bufferoverflowu.lib")
#pragma comment(lib, "libcmt.lib")

bool g_failed;

bool copy_headers(FILE *fi, ogg_sync_state *si, ogg_stream_state *is,
                  FILE *fo, ogg_sync_state *so, ogg_stream_state *os,
                  vorbis_info *vi)
{
  char *buffer = ogg_sync_buffer(si, 4096);
  int numread = fread(buffer, 1, 4096, fi);
  ogg_sync_wrote(si, numread);

  ogg_page page;
  if (ogg_sync_pageout(si, &page) != 1) {
    fprintf(stderr, "Input is not an Ogg.\n");
    return false;
  }

  ogg_stream_init(is, ogg_page_serialno(&page));
  ogg_stream_init(os, ogg_page_serialno(&page));

  if (ogg_stream_pagein(is,&page) < 0) {
    fprintf(stderr, "Error in the first page.\n");
    ogg_stream_clear(is);
    ogg_stream_clear(os);
    return false;
  }

  ogg_packet packet;
  if (ogg_stream_packetout(is,&packet) != 1) {
    fprintf(stderr, "Error in the first packet.\n");
    ogg_stream_clear(is);
    ogg_stream_clear(os);
    return false;
  }

  vorbis_comment vc;
  vorbis_comment_init(&vc);
  if (vorbis_synthesis_headerin(vi, &vc, &packet) < 0) {
    fprintf(stderr, "Error in header, probably not a Vorbis file.\n");
    vorbis_comment_clear(&vc);
    ogg_stream_clear(is);
    ogg_stream_clear(os);
    return false;
  }

  ogg_stream_packetin(os, &packet);

  int i = 0;
  while(i < 2) {
    int res = ogg_sync_pageout(si, &page);

    if (res == 0) {
      buffer = ogg_sync_buffer(si, 4096);
      numread = fread(buffer, 1, 4096, fi);
      if (numread == 0 && i < 2) {
        fprintf(stderr, "Headers are damaged, file is probably truncated.\n");
        ogg_stream_clear(is);
        ogg_stream_clear(os);
        return false;
      }
      ogg_sync_wrote(si, 4096);
      continue;
    }

    if (res == 1) {
      ogg_stream_pagein(is, &page);
      while(i < 2) {
        res = ogg_stream_packetout(is, &packet);
        if (res == 0)
          break;
        if (res < 0) {
          fprintf(stderr, "Secondary header is corrupted.\n");
          vorbis_comment_clear(&vc);
          ogg_stream_clear(is);
          ogg_stream_clear(os);
          return false;
        }
        vorbis_synthesis_headerin(vi, &vc, &packet);
        ogg_stream_packetin(os, &packet);
        i++;
      }
    }
  }

  vorbis_comment_clear(&vc);

  while(ogg_stream_flush(os,&page)) {
    if (fwrite(page.header, 1, page.header_len, fo) != page.header_len || fwrite(page.body, 1, page.body_len, fo) != page.body_len) {
      fprintf(stderr,"Cannot write headers to output.\n");
      ogg_stream_clear(is);
      ogg_stream_clear(os);
      return false;
    }
  }

  return true;
}

int wmain(int argc, wchar_t **argv)
{
  if (argc < 2) {
    fprintf(stderr, "-= REVORB - <yirkha@fud.cz> 2008/06/29 =-\n");
    fprintf(stderr, "Recomputes page granule positions in Ogg Vorbis files.\n");
    fprintf(stderr, "Usage:\n");
    fprintf(stderr, "  revorb <input.ogg> [output.ogg]\n");
    return 1;
  }

  FILE *fi;
  if (!wcscmp(argv[1], L"-")) {
    fi = stdin;
    _setmode(_fileno(stdin), _O_BINARY);
  } else {
    fi = _wfopen(argv[1], L"rb");
    if (!fi) {
      fprintf(stderr, "Could not open input file.\n");
      return 2;
    }
  }

  wchar_t tmpName[260];
  FILE *fo;
  if (argc >= 3) {
    if (!wcscmp(argv[2], L"-")) {
      fo = stdout;
      _setmode(_fileno(stdout), _O_BINARY);
    } else {
      fo = _wfopen(argv[2], L"wb");
      if (!fo) {
        fprintf(stderr, "Could not open output file.\n");
        fclose(fi);
        return 2;
      }
    }
  } else {
    wcscpy(tmpName, argv[1]);
    wcscat(tmpName, L".tmp");
    fo = _wfopen(tmpName, L"wb");
    if (!fo) {
      fprintf(stderr, "Could not open output file.\n");
      fclose(fi);
      return 2;
    }
    g_failed = false;
  }

  ogg_sync_state sync_in, sync_out;
  ogg_sync_init(&sync_in);
  ogg_sync_init(&sync_out);

  ogg_stream_state stream_in, stream_out;
  vorbis_info vi;
  vorbis_info_init(&vi);

  ogg_packet packet;
  ogg_page page;

  if (copy_headers(fi, &sync_in, &stream_in, fo, &sync_out, &stream_out, &vi)) {
    ogg_int64_t granpos = 0, packetnum = 0;
    int lastbs = 0;

    while(1) {
//    ogg_int64_t logstream_startgran = granpos;

      int eos = 0;
      while(!eos) {
        int res = ogg_sync_pageout(&sync_in, &page);
        if (res == 0) {
          char *buffer = ogg_sync_buffer(&sync_in, 4096);
          int numread = fread(buffer, 1, 4096, fi);
          if (numread > 0)
            ogg_sync_wrote(&sync_in, numread);
          else
            eos = 2;
          continue;
        }

        if (res < 0) {
          fprintf(stderr, "Warning: Corrupted or missing data in bitstream.\n");
          g_failed = true;
        } else {
          if (ogg_page_eos(&page))
            eos = 1;
          ogg_stream_pagein(&stream_in,&page);

          while(1) {
            res = ogg_stream_packetout(&stream_in, &packet);
            if (res == 0)
              break;
            if (res < 0) {
              fprintf(stderr, "Warning: Bitstream error.\n");
              g_failed = true;
              continue;
            }

            /*
            if (packet.granulepos >= 0) {
              granpos = packet.granulepos + logstream_startgran;
              packet.granulepos = granpos;
            }
            */
            int bs = vorbis_packet_blocksize(&vi, &packet);
            if (lastbs)
              granpos += (lastbs+bs) / 4;
            lastbs = bs;

            packet.granulepos = granpos;
            packet.packetno = packetnum++;
            if (!packet.e_o_s) {
              ogg_stream_packetin(&stream_out, &packet);

              ogg_page opage;
              while(ogg_stream_pageout(&stream_out, &opage)) {
                if (fwrite(opage.header, 1, opage.header_len, fo) != opage.header_len || fwrite(opage.body, 1, opage.body_len, fo) != opage.body_len) {
                  fprintf(stderr, "Unable to write page to output.\n");
                  eos = 2;
                  g_failed = true;
                  break;
                }
              }
            }
          }
        }
      }

      if (eos == 2)
        break;

      {
        packet.e_o_s = 1;
        ogg_stream_packetin(&stream_out, &packet);
        ogg_page opage;
        while(ogg_stream_flush(&stream_out, &opage)) {
          if (fwrite(opage.header, 1, opage.header_len, fo) != opage.header_len || fwrite(opage.body, 1, opage.body_len, fo) != opage.body_len) {
            fprintf(stderr, "Unable to write page to output.\n");
            g_failed = true;
            break;
          }
        }
        ogg_stream_clear(&stream_in);
        break;
      }
    }

    ogg_stream_clear(&stream_out);
  } else {
    g_failed = true;
  }

  vorbis_info_clear(&vi);

  ogg_sync_clear(&sync_in);
  ogg_sync_clear(&sync_out);

  fclose(fi);
  fclose(fo);

  if (argc < 3) {
    if (g_failed) {
      _wunlink(tmpName);
    } else {
      if (_wunlink(argv[1]) || _wrename(tmpName, argv[1]))
        fprintf(stderr, "%S: Could not put the output file back in place.\n", tmpName);
    }
  }
  return 0;
}


Im wesentlichen geht es um die Dinger hier, dieses wfopen Zeugs und so weiter gibt es ja glaub ich unter Linux gar nicht:

 
Code:
revorb.cpp:26:16: error: io.h: No such file or directory
revorb.cpp: In function &#8216;int wmain(int, wchar_t**)&#8217;:
revorb.cpp:145: error: &#8216;wcscmp&#8217; was not declared in this scope
revorb.cpp:147: error: &#8216;_fileno&#8217; was not declared in this scope
revorb.cpp:147: error: &#8216;_O_BINARY&#8217; was not declared in this scope
revorb.cpp:147: error: &#8216;_setmode&#8217; was not declared in this scope
revorb.cpp:149: error: &#8216;_wfopen&#8217; was not declared in this scope
revorb.cpp:159: error: &#8216;wcscmp&#8217; was not declared in this scope
revorb.cpp:161: error: &#8216;_fileno&#8217; was not declared in this scope
revorb.cpp:161: error: &#8216;_O_BINARY&#8217; was not declared in this scope
revorb.cpp:161: error: &#8216;_setmode&#8217; was not declared in this scope
revorb.cpp:163: error: &#8216;_wfopen&#8217; was not declared in this scope
revorb.cpp:171: error: &#8216;wcscpy&#8217; was not declared in this scope
revorb.cpp:172: error: &#8216;wcscat&#8217; was not declared in this scope
revorb.cpp:173: error: &#8216;_wfopen&#8217; was not declared in this scope
revorb.cpp:295: error: &#8216;_wunlink&#8217; was not declared in this scope
revorb.cpp:297: error: &#8216;_wunlink&#8217; was not declared in this scope
revorb.cpp:297: error: &#8216;_wrename&#8217; was not declared in this scope
09.08.2010 23:39:46  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
krautjork

AUP krautjork 30.12.2012
amuesiert gucken
Habs selber hinbekommen, erstaunlich wieviel man mit keiner Ahnung und halbwegs guten Googleskills noch hinkriegt. Code poste ich hier demnächst, falls irgendjemand das gleiche Problem hat und durch Google drauf stößt...
10.08.2010 0:21:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
 
Zitat von teK

http://support.mozilla.com/en-US/questions/716306 nervt mich. Wen noch.




 
Zitat von Teh Ortus

 
Zitat von teK

http://support.mozilla.com/en-US/questions/716306 nervt mich. Wen noch.


Jap, mich auch ab und an. Aber betrifft mich lustigerweise sogar im Chrome



It's not a bug, it's a feature!
Die gängigen Clipboardmanager räumen brav Daten von Programmen auf, die nichtmehr laufen. Je nachdem was man zuletzt so im Clipboard hatte, ist das auch gar nicht so verkehrt. Augenzwinkern

//Zumindest hab ich da irgendwann mal was zu gelesen und fands da nicht so dumm Breites Grinsen
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von GH@NDI am 10.08.2010 14:19]
10.08.2010 14:18:20  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Teh Ortus

UT Malcom
 
Zitat von GH@NDI

//Zumindest hab ich da irgendwann mal was zu gelesen und fands da nicht so dumm Breites Grinsen


Joa, im Grunde stimmt das schon (MS- und Open- Office fragen glaube ich beide sogar beim schließen, ob man die Zwischenablage leeren will).
Doof ist nur wenn ich zB einen Tab im Chrome offenhabe, aber mim FF gucken will. Ich kopier die Url, mach den Chrome zu, mach den FF auf, will die einfügen und nix passiert. Das nervt. Augenzwinkern
10.08.2010 14:35:56  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
 
Zitat von GH@NDI

It's not a bug, it's a feature!



Es gibt keinen einzigen Fall, fuer den ich, wenn ich strg+v druecke, will, dass nichts kommt.
10.08.2010 15:27:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
Ich schon, ich habe einen Passwortmanager.
10.08.2010 15:34:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
Ja halt mal.. das ist doch kein FF-Problembugfeature? Den Hirnriss, Clipboardinhalte nur so lange zu behalten, wie die zugehörige Anwendung läuft ist doch seit jeher fest in Gnome integriert z.B.
10.08.2010 15:50:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
YT

Arctic
Wer schliesst denn auch schon seinen FF?
10.08.2010 15:51:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
GH@NDI

ghandi2
 
Zitat von teK

 
Zitat von GH@NDI

It's not a bug, it's a feature!



Es gibt keinen einzigen Fall, fuer den ich, wenn ich strg+v druecke, will, dass nichts kommt.



Und ruck zuck landet die y**p***-Url beim Chef im Chatfenster, weil FF grade beim erstellen eines neuen Tabs abgeschmiert ist, Pidgin in den Fokus geriet und du blind mal eben STRG+V RETURN gedrückt hast Breites Grinsen
10.08.2010 16:05:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Zitat von GH@NDI

 
Zitat von teK

 
Zitat von GH@NDI

It's not a bug, it's a feature!



Es gibt keinen einzigen Fall, fuer den ich, wenn ich strg+v druecke, will, dass nichts kommt.



Und ruck zuck landet die y**p***-Url beim Chef im Chatfenster, weil FF grade beim erstellen eines neuen Tabs abgeschmiert ist, Pidgin in den Fokus geriet und du blind mal eben STRG+V RETURN gedrückt hast Breites Grinsen



Dafür hat man sowas auf verschiedenen Desktops, oder so :> Aber ich hab tatsächlich nie mehr als 3-4 (verwandte) Fenster auf dem selben Desktop. Mags aufgeräumt.
10.08.2010 16:06:35  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
Die ganzen Gegenbeispiele beruhen auf "ausversehen". Dann macht doch bitte /bin/rm auch von eurem System. Mal abgesehen davon, dass auch der Passwortmanager noch offen sein kann und du dann das gleiche Problem hast.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von teK am 10.08.2010 16:08]
10.08.2010 16:07:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
 
Zitat von Teh Ortus

 
Zitat von GH@NDI

//Zumindest hab ich da irgendwann mal was zu gelesen und fands da nicht so dumm Breites Grinsen


Joa, im Grunde stimmt das schon (MS- und Open- Office fragen glaube ich beide sogar beim schließen, ob man die Zwischenablage leeren will).
Doof ist nur wenn ich zB einen Tab im Chrome offenhabe, aber mim FF gucken will. Ich kopier die Url, mach den Chrome zu, mach den FF auf, will die einfügen und nix passiert. Das nervt. Augenzwinkern



Ich schreibe jetzt mal mein Halbwissen ueber Gnome. Bis 2005 war das Clipboard unter Gnome so gut wie unbrauchbar, weil man nur C&P ausfuehren konnte wenn Quell und Zielanwendung gleichzeitig liefen.
Seit ca. 2005 merkt sich das Clipboard unter Gnome den Inhalt wenn die Anwendung das Clipboard von Gnome unterstuetzt.

Gedit tut das soweit ich weiss. Epiphany erstaunlicher weisse nicht.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von ./hoschi am 10.08.2010 16:16]
10.08.2010 16:13:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
 
Zitat von teK

 
Zitat von GH@NDI

It's not a bug, it's a feature!



Es gibt keinen einzigen Fall, fuer den ich, wenn ich strg+v druecke, will, dass nichts kommt.



Sehe ich genauso wie du. Der Anwender ist am System angemeldet, das System sichert den Anwender und sein Clipboard ab.
Wenn der Anwender mit seinem Clipboard nach gesundem Menschenverstand umgeht, erwartet er dass der Inhalt im Clipboard bleibt.

Passwortmanager mag ich gar nicht, die stoeren nur und verunsichern mich (abgesehen von einem weitern unnuetzen Passwort um seiner selbst willen).
Entweder ich weiss meine Passwoerter, oder nicht.

<edit />
Gute GUI-Anwendung beanspruchen den Fokus fuer sich nur beim Start. Pidgin und Empathy sind da uebrigens sehr gute Beispiele fuer gelungene Arbeit. Wenn was wichtiges passiert kann eine Anwendung das Fenster gluehen/blinken lassen.

Ausserdem ist das Beispiel mit der abgestuerzten Quellanwendung irgendwie falsch. Gefaehrlich ist es doch viel eher, wenn die Zielanwendung abschmiert und der Fenstermanager den Fokus auf die letzte verwendete Anwendung setzt, anstatt auf eine Anweisung durch den Anwender zu warten.
Nur bringt das besagtes Verhalten mit dem Loeschen des Clipboards beim beenden der Quellanwendung nichts.
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von ./hoschi am 10.08.2010 16:32]
10.08.2010 16:18:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Rufus

AUP Rufus 12.02.2008
 
Zitat von ./hoschi

Gedit tut das soweit ich weiss. Epiphany erstaunlicher weisse nicht.


Ja, gedit und gnome-terminal tun das [mittlerweile]. Und ohne jetzt alle Tools die ich so nutze durchzuprobieren, möcht ich gefühlsmäßig sagen, dass die meisten es nicht tun.

Und für die Diskussion: Ja sicher, man kann jetzt 2-3 Fälle konstruieren (!), in denen ein globales Clipboard schlecht ist. Dem gegenüber stehen aber 100x soviele nicht-konstruierte Fälle, in denen man Clipboard-Rage erhält.
10.08.2010 16:24:37  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
teK

tek
Ich finde es viel schlimmer, dass Firefox es einem so RICHTIG schwer macht, ein Eingabefeld bzw. seine "History" zu loeschen weil man nicht TAB nach Eingabe des Benutzers gedrueck hat und da jetzt userl33tpass gespeichert ist.
10.08.2010 16:26:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
./hoschi

hoschi
 
Zitat von Rufus

 
Zitat von ./hoschi

Gedit tut das soweit ich weiss. Epiphany erstaunlicher weisse nicht.


Ja, gedit und gnome-terminal tun das [mittlerweile]. Und ohne jetzt alle Tools die ich so nutze durchzuprobieren, möcht ich gefühlsmäßig sagen, dass die meisten es nicht tun.

Und für die Diskussion: Ja sicher, man kann jetzt 2-3 Fälle konstruieren (!), in denen ein globales Clipboard schlecht ist. Dem gegenüber stehen aber 100x soviele nicht-konstruierte Fälle, in denen man Clipboard-Rage erhält.



Was zur alten Gnomediskussion fuehren kann.
Gnome macht manche Dinge richtig schlau, z.B. kein automatischer Fokus fuer Instant-Messenger. Anderseits unterstuetzten selbst offizielle Gnome-Anwendung das eigene Clipboard nicht.
10.08.2010 16:31:03  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: 100 gute Gründe für Linux ( v0.21 - sudo make me a sandwich! )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [80] 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 nächste »

mods.de - Forum » Linux » 

Hop to:  

Mod-Aktionen:
27.09.2010 12:59:44 teK hat diesen Thread geschlossen.

| tech | impressum